Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > ComboBox и его Items


Автор: asalot 9.11.2007, 17:51
Здравствуйте!

у меня есть ComboBox,  в котором запрещен ввод данных пользователем, также этот ComboBox прорисовывается программно (this.brend.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed)

Задача стоит такая:
при наведении мыши на итемы в раскрывающемся списке, в Техтбоксе должна отображается информация по выделенному итему (его номер и текст)

я пыталась решить вопрос с помощью MouseMove, однако параметры Х и У отображают почему то только координаты комбобокса и все. Также пыталась решить задачу с помощью MouseUP и MouseDown

Событие SelectedIndexChanged и TabIndexChanged отрабатываются когда пользователь уже выбрал нужный ему элемент из списка

Помогите пожалуйста.

Автор: MFSham 9.11.2007, 23:56
Ну хорошо, у тебя есть ComboBox, при раскрытии списка он имеет какую-то высоту(в зависимости от количества item'ов), ты знаешь высоту одного imem'a. Ну и все smile В зависимости от координаты Y отображаешь нужную инфу.

Автор: asalot 13.11.2007, 12:44
дело в том что Y отображает только одну цифру, верхную для целого комбобокса и не меняется при наведении на итем

Автор: farad 13.11.2007, 14:11
Вот набросал классик, надеюсь мысль понятна:
Код

    class MyCombo : ComboBox
    {
        const int WM_CTLCOLORLISTBOX = 0x134;
        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);

            if (m.Msg == WM_CTLCOLORLISTBOX)
            {
                if(this.SelectedItem!=null)
                System.Diagnostics.Debug.WriteLine(this.SelectedItem.ToString());
            }
        }
    }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)