Преобразовать строковое значение поля со списком в int - PullRequest
3 голосов
/ 14 мая 2010

У меня есть вопрос о преобразовании типов. Я хочу изменить текущую выбранную строку со значением комбинированного списка на int, но получаю ошибки

Мой код:

int.Parse(age.SelectedItem.ToString());

Что я могу сделать для этой проблемы?

Ответы [ 3 ]

6 голосов
/ 14 мая 2010

Хорошо, теперь мы знаем об ошибке, вы можете проверить нулевое значение, прежде чем пытаться проанализировать его, используя:

    if (comboBox1.SelectedItem != null)
    {
        int x = int.Parse(comboBox1.SelectedItem.ToString());
    }
    else { //Value is null }

Вы можете избежать передачи нулевого значения, установив для свойства text элемента управления любое значение по умолчанию.

Если вы все еще не получаете значение после того, как убедитесь, что оно выбрано, вам действительно нужно опубликовать свой код.

1 голос
/ 22 мая 2014

TryParse хороший метод для такого рода вещей:

int value;
if (!Int32.TryParse(this.comboBoxNumeric.Text, out value))
{
    //Do something fun...
}
0 голосов
/ 14 мая 2010

Используйте метод Convert.ToInt32. Вы всегда можете использовать привязку данных следующим образом:


class A
{
    public int ID{get;set;}
    public string Name{get;set;}
}

cbo.DataSource = new A[]{new A{ID=1, Name="hello"}};
cbo.DisplayMember = "Name";
cbo.DisplayValue = "ID";

int id = Convert.ToInt32(cbo.SelectedValue);
A a = (A) cbo.SelectedItem;
int a_id = a.ID;
int a_name = a.Name;

Если вы используете LINQ to DataSets , разработка очень проста для программы на C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...