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 |
|||
при не выборе одного из вариантов combobox’a
0 |
NIKOLAYY 841 / 736 / 342 Регистрация: 22.09.2012 Сообщений: 5,034 |
||||
17.04.2015, 01:04 |
5 |
|||
Ну или вот так со значком красным крестиком:
0 |
droider 4891 / 2761 / 851 Регистрация: 04.10.2012 Сообщений: 10,063 |
||||
17.04.2015, 10:22 |
6 |
|||
if Combobox1.ItemIndex < 0
Не корректнее ли так?
0 |
пофигист широкого профиля 4662 / 3096 / 855 Регистрация: 15.07.2013 Сообщений: 17,857 |
|
17.04.2015, 12:19 |
7 |
Не корректнее ли так? Имхо, те же фабержи, только в профиль.
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
4751 gold badge7 silver badges18 bronze badges
asked Oct 13, 2012 at 19:03
Hendra AnggrianHendra Anggrian
5,76213 gold badges55 silver badges97 bronze badges
if( ComboBox.SelectedItem == null ) {
// do something
}
answered Oct 13, 2012 at 19:12
0
ComboBox.SelectedItems.Count
this should work it counts selected items. if that number is 0, no items are selected.
answered Oct 13, 2012 at 19:06
1
if( ComboBox.SelectedIndex == -1 )
answered Jan 22, 2015 at 8:37
Проблема заключается в том, что в вашем 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
|
Поиск: |
|
Опции темы |
lankin |
|
||
Опытный Профиль Репутация: нет
|
Вот такой простой вопрос. |
||
|
|||
Experimenter |
|
||||||
Опытный Профиль
Репутация: 4
|
Если ты задаешь комбобоксу свойство
то данное значение и вернется, если запросишь это же свойство. Но только в случае, если
Если
то ничего не увидишь. Это сообщение отредактировал(а) Experimenter — 31.7.2008, 18:22 ——————— public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ |
||||||
|
|||||||
lankin |
|
||
Опытный Профиль Репутация: нет
|
Спасибо |
||
|
|||
KLUBS |
|
||
Шустрый Профиль
Репутация: нет
|
а помойму SeletedIndex вернет -1 если ничего не выделено |
||
|
|||
Exai1e |
|
||
Опытный Профиль
Репутация: 4
|
именно так и есть ——————— «Решение зависит от выбранного геморроя» © Snowy |
||
|
|||
Experimenter |
|
||
Опытный Профиль
Репутация: 4
|
KLUBS, Все верно, но я говорил про SelectedValue ——————— public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){ |
||
|
|||
|
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [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());
}