我在做Windows项目时遇到了问题。认为你们可以帮助我找到一些方法来解决它。
问题 - 我在表单上有下拉列表,其中包含可变长度的项目列表。有时文本的宽度超过下拉列表的宽度和文本被截断。我想提出一种显示全文的方法。我尝试包含工具提示,当下拉菜单展开时它工作正常,但是当下拉状态折叠时隐藏工具提示。我想以工具提示或其他方式显示下拉列表中所选项目的全文。
感谢您的帮助。
答案 0 :(得分:2)
有很多方法,
1)最明显的一个是使组合框更大
2)现在使用工具提示,但将其扩展为组合框鼠标悬停事件
3)创建一个具有所需长度和高度的标签(标签也可以包装文字)。使用Combobox MouseHover,MouseLeave,DropDown事件操作您的标签所需的文本,并使用标签visible属性显示和隐藏您需要的。
此外,使用工具提示上的标签,您将拥有更多功能和灵活性。
答案 1 :(得分:1)
试试这个:
private SizeF GetMaxSize(List<string> items)
{
Graphics g = CreateGraphics();
SizeF size;
SizeF oldSize = new Size(0f,0f);
foreach(string item in items)
{
size = g.MeasureString(item, myComboBox.Font);
if (size.Width > oldSize.Width) {
oldSize.Width = size.Width
oldSize.Height = size.Height
}
}
return oldSize;
}
只需将组合框中填充的所有字符串的List<T>
集合传递给它,它就会找到字符串中最大的宽度。然后,您可以相应地将组合框的大小调整为宽度。 myComboBox.Width = GetMaxSize().Width