Значение ComboBox показывает конечную часть после выбора элемента - PullRequest
2 голосов
/ 03 марта 2011

У меня есть ComboBox в моей C # Winform. Некоторые из текстов элементов больше, чем размер ComboBox. Всякий раз, когда я выбираю эти значения, конечная часть видна. Как я могу убедиться, что начальная часть отображается.

Например,

Рассмотрим элементы: {"small", "выделение большого текста"}

Теперь ComboBox достаточно большой, чтобы отображать 8 символов. Когда я выбираю «выделение большого текста»,

Я вижу только "выборы", но вместо этого я хотел бы просмотреть "большой текст".

Ответы [ 3 ]

2 голосов
/ 03 марта 2011

Значительно ли для вас использовать DropDownStyle равно DropDown? В этом комбинированном окне стиля есть редактор, поэтому, когда вы выбираете новое значение из списка, оно отображается в редакторе и позиция курсора устанавливается в конце текста. Поэтому в этом случае вы должны отправить код кнопки HOME в редактор списков, это переместит курсор в начало строки. Вы можете сделать это, как показано ниже:

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SendKeys.Send("{HOME}");
    }

Но если стиль DropDown не важен для вас, просто измените его на DropDownList, и вы получите желаемое поведение.

1 голос
/ 03 марта 2011

В событии SelectedIndexChanged создайте Таймер:

Timer timer = new Timer();
timer.Interval = 10;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();

И в его Тике:

void timer_Tick(object sender, EventArgs e)
{
    comboBox1.Select(0, 0);
    (sender as Timer).Stop();
    (sender as Timer).Dispose();
}

Вызов Select достигнет того, что вы ищете.

0 голосов
/ 03 марта 2011

Вы также можете посмотреть на динамическое расширение значения или использовать всплывающую подсказку для крупных элементов.

Я объяснил здесь, как это сделать для Listbox:

http://blogs.msdn.com/b/sajoshi/archive/2010/06/15/asp-net-mvc-creating-a-single-select-list-box-and-showing-tooltip-for-lengthy-items.aspx

...