Ошибка если не выбран combobox

0 / 0 / 0

Регистрация: 16.04.2015

Сообщений: 4

1

16.04.2015, 16:46. Показов 1338. Ответов 6


Студворк — интернет-сервис помощи студентам

Как сделать что бы при не выборе одного из вариантов combobox’a выдавало ошибку?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

16.04.2015, 16:46

6

841 / 736 / 342

Регистрация: 22.09.2012

Сообщений: 5,034

16.04.2015, 16:51

2

pdtale,
Смотря какую ошибку ты хочеш. Сгенерировать можно.



1



0 / 0 / 0

Регистрация: 16.04.2015

Сообщений: 4

16.04.2015, 16:57

 [ТС]

3

просто выкидывало или показывало окно с текстом



0



northener

пофигист широкого профиля

4662 / 3096 / 855

Регистрация: 15.07.2013

Сообщений: 17,857

16.04.2015, 17:06

4

Цитата
Сообщение от pdtale
Посмотреть сообщение

при не выборе одного из вариантов combobox’a

Delphi
1
if Combobox1.ItemIndex < 0 then ShowMessage('Не выбран ни один из вариантов');



0



NIKOLAYY

841 / 736 / 342

Регистрация: 22.09.2012

Сообщений: 5,034

17.04.2015, 01:04

5

Ну или вот так со значком красным крестиком:

Delphi
1
  Application.MessageBox('Ошибка работы программы', 'Ошибка', MB_OK + MB_ICONSTOP);



0



droider

Эксперт Pascal/Delphi

4891 / 2761 / 851

Регистрация: 04.10.2012

Сообщений: 10,063

17.04.2015, 10:22

6

Цитата
Сообщение от northener
Посмотреть сообщение

if Combobox1.ItemIndex < 0

Delphi
1
if Combobox1.ItemIndex=-1 then...

Не корректнее ли так?



0



пофигист широкого профиля

4662 / 3096 / 855

Регистрация: 15.07.2013

Сообщений: 17,857

17.04.2015, 12:19

7

Цитата
Сообщение от droider
Посмотреть сообщение

Не корректнее ли так?

Имхо, те же фабержи, только в профиль.



0



In my ComboBox, the field is blank before users click it and choose any item. So without users click on the ComboBox, it remains empty. How do we check whether the ComboBox is empty or not?

This codes gives me an error because there is no item selected yet:

if( ComboBox.SelectedItem.ToString().Equals("") )
{
     //do something
}

Beetee's user avatar

Beetee

4751 gold badge7 silver badges18 bronze badges

asked Oct 13, 2012 at 19:03

Hendra Anggrian's user avatar

Hendra AnggrianHendra Anggrian

5,76213 gold badges55 silver badges97 bronze badges

if( ComboBox.SelectedItem == null ) {
   // do something
}

answered Oct 13, 2012 at 19:12

Jcl's user avatar

0

ComboBox.SelectedItems.Count

this should work :P it counts selected items. if that number is 0, no items are selected.

answered Oct 13, 2012 at 19:06

inzenir's user avatar

1

if( ComboBox.SelectedIndex == -1 )

answered Jan 22, 2015 at 8:37

Geiziry's user avatar

Проблема заключается в том, что в вашем ComboBox ничего не выбрано. Вы создаете свою форму, а затем, без предварительного взаимодействия с пользователем, вы хотите получить SelectedItem, который в данный момент равен нулю.

Когда вы создаете элемент управления ComboBox и заполняете его элементами, свойство SelectedItem равно null, пока вы не запрограммируете его программно (используя, например, comboBox1.SelectedIndex = 3), или пользовательское взаимодействие с элементом управления. В этом случае вы ничего не делаете из вышеперечисленного, и именно поэтому вы получаете указанную ошибку.

EDIT Основываясь на отредактированном вопросе
Измените свой код следующим образом:
сначала измените метод saveProfile, чтобы вы могли передать четыре строки, которые вы пишете в текстовый файл. Обратите внимание, что вы можете альтернативно передать ссылку формы, но я бы не предложил вам это. Поэтому измените метод следующим образом:

public void saveProfile(string filename, string cpuCount, string RAM , string VRAM , string threads)
    {
        string path = folder + "/" + filename;
        using(StreamWriter sw = new StreamWriter(path)) 
        {
             sw.WriteLine("cpuCount=" + cpuCount);
             sw.WriteLine("maxRAM=" + RAM );
             sw.WriteLine("maxVRAM=" + VRAM );
             sw.WriteLine("cpuThreads=" + threads);
        }        
    }

И затем вызовите его из кнопки3 Обработчик события Click следующим образом:

private void button3_Click(object sender, EventArgs e)
{
            string current = profile.currentProfile();
            string cpuCount = this.comboBox1.SelectedItem.ToString();
            string RAM =  this.comboBox4.SelectedItem.ToString();
            string VRAM = this.comboBox2.SelectedItem.ToString();
            string threads = this.comboBox3.SelectedItem().ToString();
            profile.saveProfile(current, cpuCount, RAM, VRAM, threads);
}

Или, альтернативно,

private void button3_Click(object sender, EventArgs e)
{
            string current = profile.currentProfile();
            profile.saveProfile(current, this.comboBox1.SelectedItem.ToString(), this.comboBox4.SelectedItem.ToString(), this.comboBox2.SelectedItem.ToString(), this.comboBox3.SelectedItem().ToString());
}


Форум программистов Vingrad

Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Возвращает чтонибудь combobox, если не выбрано? ничего из его списка 

V

   

Опции темы

lankin
Дата 31.7.2008, 17:59 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет

Вот такой простой вопрос.

PM MAIL   Вверх
Experimenter
Дата 31.7.2008, 18:20 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 4
Всего: 17

Если ты задаешь комбобоксу свойство

Код
combobox1.Text = "somevalue";

то данное значение и вернется, если запросишь это же свойство. Но только в случае, если

Код
combobox1.DropDownStyle = ComboBoxStyle.DropDown;

Если

Код
combobox1.DropDownStyle = ComboBoxStyle.DropDownList;

то ничего не увидишь.
Свойство SelectedValue выкинет исключение в любом случае.

Это сообщение отредактировал(а) Experimenter — 31.7.2008, 18:22

———————

public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception(«Kill yourself by the wall»); }

PM WWW ICQ   Вверх
lankin
Дата 1.8.2008, 12:04 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет

Спасибо

PM MAIL   Вверх
KLUBS
Дата 1.8.2008, 19:59 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 93
Регистрация: 11.2.2007
Где: Спб

Репутация: нет
Всего: 1

а помойму SeletedIndex вернет -1 если ничего не выделено

PM MAIL ICQ Skype   Вверх
Exai1e
Дата 2.8.2008, 16:39 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 4
Всего: 30

Цитата(KLUBS @  1.8.2008,  20:59 Найти цитируемый пост)
а помойму SeletedIndex вернет -1 если ничего не выделено 

именно так и есть  smile 

———————

«Решение зависит от выбранного геморроя» © Snowy
«у нас как в армии — либо работает, либо так и задумано»

PM MAIL ICQ   Вверх
Experimenter
Дата 2.8.2008, 16:49 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 4
Всего: 17

KLUBS, Все верно, но я говорил про SelectedValue

———————

public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception(«Kill yourself by the wall»); }

PM WWW ICQ   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Прежде чем создать тему, посмотрите сюда:

Partizan

PashaPash

  • Что же такое .NET? Краткое описание, изучаем.
  • Какой язык программирования выбрать? выбираем.
  • C#. С чего начать? начинаем.
  • Защита исходного кода .NET приложений, защищаем.
  • Литература по .NET, обращаемся.

  • FAQ раздела, ищем здесь.
  • Архиполезные ссылки: www.connectionstrings.com, www.pinvoke.net, www.codeproject.com

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов.

Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)?
Пишите сюда, или отправляйте репорт. Поставим :)

Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »

Проблема в том, что ничего не выбрано в вашем ComboBox, Вы создаете свою форму, а затем, без предварительного взаимодействия с пользователем, вы хотите получить SelectedItem который является нулевым в тот момент.

Когда вы создаете элемент управления ComboBox и заполняете его элементами, SelectedItem свойство null пока вы не установите его программно (например, используя comboBox1.SelectedIndex = 3) или путем взаимодействия с пользователем. В этом случае вы не делаете ничего из вышеперечисленного, и именно поэтому вы получаете упомянутую ошибку.

РЕДАКТИРОВАТЬ На основе отредактированного вопроса Измените свой код следующим образом: сначала измените saveProfile метод, чтобы вы могли передать четыре строки, которые вы пишете в текстовом файле. Обратите внимание, что вы могли бы альтернативно передать ссылку на форму, но я бы не советовал вам этого. Так что измените метод следующим образом:

public void saveProfile(string filename, string cpuCount, string RAM , string VRAM , string threads)
    {
        string path = folder + "/" + filename;
        using(StreamWriter sw = new StreamWriter(path)) 
        {
             sw.WriteLine("cpuCount=" + cpuCount);
             sw.WriteLine("maxRAM=" + RAM );
             sw.WriteLine("maxVRAM=" + VRAM );
             sw.WriteLine("cpuThreads=" + threads);
        }        
    }

А затем вызовите его из обработчика события button3 Click следующим образом:

private void button3_Click(object sender, EventArgs e)
{
            string current = profile.currentProfile();
            string cpuCount = this.comboBox1.SelectedItem.ToString();
            string RAM =  this.comboBox4.SelectedItem.ToString();
            string VRAM = this.comboBox2.SelectedItem.ToString();
            string threads = this.comboBox3.SelectedItem().ToString();
            profile.saveProfile(current, cpuCount, RAM, VRAM, threads);
}

Или в качестве альтернативы

private void button3_Click(object sender, EventArgs e)
{
            string current = profile.currentProfile();
            profile.saveProfile(current, this.comboBox1.SelectedItem.ToString(), this.comboBox4.SelectedItem.ToString(), this.comboBox2.SelectedItem.ToString(), this.comboBox3.SelectedItem().ToString());
}

Понравилась статья? Поделить с друзьями:
  • Ошибка если не включается айфон
  • Ошибка если на пассате б6
  • Ошибка если данные не логичны
  • Ошибка если в xml есть id
  • Ошибка если в input буквы