VB.Net - указанное преобразование недопустимо, но отладчик показывает значение - PullRequest
0 голосов
/ 10 мая 2018

Код, который я пытаюсь запустить, прост.получить текст из Textbox и отобразить его через MsgBox.сейчас я, вероятно, делал это миллион раз, но получаю странную ошибку.Код:

 Dim s As String = FromDateTEX.Text.ToString
 MsgBox(s)

Я получаю эту ошибку из второй строки:

System.InvalidCastException: 'Specified cast is not valid.'

Вот странная часть: отладчик показывает значение для s, которое является правильным.вот скриншот: screenshot

Что я здесь не так делаю?

Редактировать:

Даже этот код получает ту же ошибку:

 MsgBox(“hello”)

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Оказывается, ошибка была из вышеуказанной строки. LookupEdit s EditValue на самом деле был Short, и для него требовалось преобразование в Integer.

0 голосов
/ 10 мая 2018

На одну строку выше вы получаете доступ к свойству EditValue элемента управления DomainLUE. Если LUE означает LookUpEdit, вы используете стороннюю библиотеку компонентов от компании вроде DevExpress?

Если это так, является ли FromDateTEX элементом управления textbox (TextEdit) из этой библиотеки? В этом случае FromDateTEX может также предоставить свойство EditValue. Тогда вы можете попытаться преобразовать это значение в строку:

Dim s As String = FromDateTEX.EditValue?.ToString()

Я не уверен, почему свойство Text здесь проблематично. Я ожидал бы, что это будет работать просто отлично. Очень странно.

Да, кстати, иногда Visual Studio немного сходит с ума. Закрытие Visual Studio, при необходимости удаление файла .suo, перезапуск Visual Studio и повторное открытие решения могут также помочь ...

...