ComboBox Value显示选择项目后的结束部分

时间:2011-03-03 08:40:30

标签: c# winforms combobox selecteditem

我的C#Winform中有一个ComboBox。某些项目文本大于ComboBox的大小。每当我选择这些值时,末端部分都是可见的。如何确保显示开始部分。

例如,

考虑以下项目:{“small”,“big text selection”}

现在,ComboBox足够大,可显示8个字符。当我选择“大文本选择”时,

我只能看到“选举”,但我想查看“大文本”。

3 个答案:

答案 0 :(得分:2)

使用等于DropDownStyle的{​​{1}}对您来说意义重大吗?在这种风格中,组合框有一个编辑器,所以当您从列表中选择新值时,它将显示在编辑器中,并在文本末尾设置光标位置。因此,在这种情况下,您应该将DropDown按钮代码发送到组合框编辑器,这会将光标移动到行首。你可以这样做,如下所示:

HOME

但是,如果 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { SendKeys.Send("{HOME}"); } 样式对您来说并不重要,只需将其更改为DropDown即可获得所需的行为。

答案 1 :(得分:1)

SelectedIndexChanged事件中创建一个Timer:

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

在它的Tick中:

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

Select来电将实现您所追求的目标。

答案 2 :(得分:0)

您还可以查看动态扩展值或使用大项目的工具提示..

我在这里解释了如何为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