我的C#Winform中有一个ComboBox。某些项目文本大于ComboBox的大小。每当我选择这些值时,末端部分都是可见的。如何确保显示开始部分。
例如,
考虑以下项目:{“small”,“big text selection”}
现在,ComboBox足够大,可显示8个字符。当我选择“大文本选择”时,
我只能看到“选举”,但我想查看“大文本”。
答案 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执行此操作: