如何在Windows窗体中显示组合框所选项目的全文?

时间:2013-03-28 15:14:27

标签: c# .net winforms combobox

我在做Windows项目时遇到了问题。认为你们可以帮助我找到一些方法来解决它。

问题 - 我在表单上有下拉列表,其中包含可变长度的项目列表。有时文本的宽度超过下拉列表的宽度和文本被截断。我想提出一种显示全文的方法。我尝试包含工具提示,当下拉菜单展开时它工作正常,但是当下拉状态折叠时隐藏工具提示。我想以工具提示或其他方式显示下拉列表中所选项目的全文。

感谢您的帮助。

2 个答案:

答案 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