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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интересный факт с сombobox 
:(
    Опции темы
sobik
Дата 15.4.2008, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

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



сделал небольшое приложение с комбобоксом, вот его описание:
Код

            // 
            // comboBox1
            // 
            this.comboBox1.FormattingEnabled = true;
            this.comboBox1.Items.AddRange(new object[] {
            "[-C-]",
            "[-D-]",
            "[-\\-]"});
            this.comboBox1.Location = new System.Drawing.Point(14, 43);
            this.comboBox1.Name = "comboBox1";
            this.comboBox1.Size = new System.Drawing.Size(50, 21);
            this.comboBox1.TabIndex = 4;
            this.comboBox1.Text = "[-C-]";
            this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectIndexChanged);


обработчик изменения индекса:

Код


private void comboBox1_SelectIndexChanged(object sender, EventArgs ea)
        {
            listView1.Clear();        
            if (comboBox1.SelectedIndex == 0)
            {
                string path = "c:\\";
                List<string> dirs = new List<string>(Directory.GetDirectories(path));
                List<string> files = new List<string>(Directory.GetFiles(path));
                dirs.Sort();
                files.Sort();
                foreach (string dirName in dirs)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(dirName) + "\\");
                    listView1.Alignment = ListViewAlignment.SnapToGrid;

                }
                foreach (string fileName in files)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(fileName));
                }
            }
        }

При таком обработчике все нормально - comboBox1.SelectedIndex == 0, когда я выбираю первый пункт комбобокса, как и ожидалось.
Начинаю химичить с сomboBox1.SelectedText:
Код


private void comboBox1_SelectIndexChanged(object sender, EventArgs ea)
        {
            listView1.Clear();         
            if (comboBox1.SelectedText == ''[-C-]")
            {
                string path = "c:\\";
                List<string> dirs = new List<string>(Directory.GetDirectories(path));
                List<string> files = new List<string>(Directory.GetFiles(path));
                dirs.Sort();
                files.Sort();
                foreach (string dirName in dirs)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(dirName) + "\\");
                    listView1.Alignment = ListViewAlignment.SnapToGrid;

                }
                foreach (string fileName in files)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(fileName));
                }
            }
        }
       }

comboBox1.SelectedText == "".Хотя должно comboBox1.SelectedText == "[-C-]", так как был выбран именно этот пункт.
Но:
Код


private void comboBox1_SelectIndexChanged(object sender, EventArgs ea)
        {
            listView1.Clear();  
            MessageBox.Show(comboBox1.SelectedText);       
            if (comboBox1.SelectedText == ''[-C-]")
            {
                string path = "c:\\";
                List<string> dirs = new List<string>(Directory.GetDirectories(path));
                List<string> files = new List<string>(Directory.GetFiles(path));
                dirs.Sort();
                files.Sort();
                foreach (string dirName in dirs)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(dirName) + "\\");
                    listView1.Alignment = ListViewAlignment.SnapToGrid;

                }
                foreach (string fileName in files)
                {
                    listView1.View = View.List;
                    listView1.Items.Add(Path.GetFileName(fileName));
                }
            }
        }
       }

Теперь все ок(comboBox1.SelectedText == ''[-C-]"), хотя я всего лишь добавил мэссеэджбокс перед if'ом.

Может, кто-то знает этому обьяснение?

Это сообщение отредактировал(а) sobik - 15.4.2008, 18:34
PM MAIL   Вверх
vponomarov
Дата 15.4.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

if (comboBox1.SelectedText == ''[-C-]")


вместо открывающей двойной кавычки у тебя стоят две одинарные  smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Freak_FB
Дата 15.4.2008, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


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

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



Используй лучше SelectedIndex. И стиль списка DropDownList. Чтобы не уподобляться написателям китайских утилит  smile . Поскольку кода, определяющего введённую вручную строку у тебя нет (и, наверное, не будет).

vponomarov, код sobik'а, наверное, писался на коленке.  smile А то что он предоставил и в самом деле работает дико

Это сообщение отредактировал(а) Freak_FB - 15.4.2008, 21:10


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
sobik
Дата 16.4.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

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



vponomarov, то опечатка(в браузере писал)
правильно: 
Код

if(comboBox1.SelectedText == "[-C-]")

Но меня ве равно интерисует, как наличие мессеждбокса влият на работу этого оператора
PM MAIL   Вверх
botusai
Дата 18.4.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Текст в комбобксе меняется, когда с этого комбобкса уходит фокус, ну или ты Enter нажмешь после ввода текста. Вообще, если комбик не DropDownList,а DropDown, то лучше ввод информации в него обрабатывать на каком-нибудь KeyDown событии. MessageBox.Show() кстати и убирает фокус с комбика. Ну или я гоню
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.