Исключение из программы на C # - PullRequest
2 голосов
/ 09 сентября 2010

Произошло исключение. Указано исключение, приведение неверно

int s = (int)comboBox1.SelectedItem;

Ответы [ 8 ]

4 голосов
/ 09 сентября 2010

Это означает, что значение в элементах комбинированного списка не является int.

2 голосов
/ 09 сентября 2010

Проверьте SelectedIndex> -1 или SelectedItem! = Null

1 голос
/ 09 сентября 2010

Попробуйте Convert.ToInt32(combo.Items[combo.SelectedIndex].Value.ToString());

1 голос
/ 09 сентября 2010

Пример использования на MSDN здесь

Но на самом деле, вам нужно предоставить более подробную информацию в вопросе:)

Общее предположение, но обычно можно сделать следующее:хранить идентификатор базы данных в свойстве со значением поля со списком и текст элемента базы данных в свойстве text.Если это то, что вы делаете, то вы можете использовать приведенный ниже синтаксис, если вы точно знаете, что значение поля со списком всегда приводится к типу int.

int i = (int)ComboBox1.SelectedValue.ToString();

или если вы не уверены, что это всегда intВы можете ...

try
{
int i = int.Parse(ComboBox1.SelectedValue.ToString());
}
catch
{
//handle the non int situation here
}

или

int i;
bool result = int.TryParse(ComboBox1.SelectedValue.ToString(), out i);

            if (result)
            {
                //you can use the variable i now
            }
            else
            {
                //The parse failed so handle a non int situation here
            }
1 голос
/ 09 сентября 2010

Если вы хотите получить значение, отображаемое в поле со списком, возможно, вам следует попробовать:

int s = (int)comboBox.SelectedValue;
1 голос
/ 09 сентября 2010

try

int s = int.Parse(comboBox1.SelectedItem.ToString());

Вы не можете преобразовать любой объект в int, просто приведя его.Если у вас есть string, вам нужно использовать int.Parse() для преобразования string в int.

Если вы вставляете свои собственные объекты как элементы в выпадающий список,вместо этого можно привести comboBox1.SelectedItem к вашему типу.

ComboBox.SelectedItem.ToString() возвращает содержимое, только если вы вставили строковые объекты в комбинированный список, более надежный способ - проверить ComboBox.Textсобственность вместо.Это также избавит вас от проверки null.

0 голосов
/ 09 сентября 2010

Вы пытаетесь наложить предмет ComboBox на int.

Попробуйте

int s = comboBox1.SelectedIndex;

, если хотите индекс предмета.

0 голосов
/ 09 сентября 2010
int s = comboBox.SelectedIndex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...