comboBox2.DataSource = Enum.GetValues(typeof(GSMModemTypeConstants));
GSMModemTypeConstants s_type = (GSMModemTypeConstants)Convert.ChangeType(
comboBox2.Text, typeof(GSMModemTypeConstants));
В первой строке пользователь выбирает тип своего модема из поля со списком, которое получает список доступных модемов из Enum GSMModemTypeConstants. Во второй строке я хочу передать выбранный тип модема в s_type, который позже будет использоваться методом, который фактически отправляет SMS.
Когда я вручную устанавливаю s_type, все работает идеально, например:
GSMModemTypeConstants s_type = GSMModemTypeConstants.gsmModemSonyEricsson;
// OR
GSMModemTypeConstants s_type = GSMModemTypeConstants.gsmModemNokia;
Но когда я пытаюсь получить выбор из comboBox
и установить s_type
, как я делаю во второй строке, преобразование дает мне ошибку, которую я не могу понять.
Я неправильно обрабатываю метод Convert.ChangeType
? Если это не моя вина, то есть ли другой способ преобразовать тип из строки во что-то другое, кроме Convert.ChangeType
?
Решение У меня все еще нет необходимой репутации, чтобы ответить на этот вопрос ниже, поэтому вот код...
GSMModemTypeConstants s_type = (GSMModemTypeConstants)System.Enum.Parse(
typeof(GSMModemTypeConstants), comboBox2.Text);`