【问题标题】:How can i show full text of a combobox selecteditem in windowsforms?如何在 Windows 窗体中显示组合框所选项目的全文?
【发布时间】:2013-03-28 15:14:26
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

  • 你可以把组合框变大吗?

标签: c# .net winforms combobox


【解决方案1】:

方法有很多种,

1) 最明显的一个使组合框变大

2) 像现在一样使用工具提示,但将其扩展到组合框鼠标悬停事件

3) 创建一个具有所需长度和高度的标签(标签也可以换行)。使用 Combobox MouseHover、MouseLeave、DropDown 事件来使用所需的文本来操纵标签,并使用标签可见属性根据需要显示和隐藏。

除了在工具提示上使用标签,您将拥有更多的功能和灵活性。

【讨论】:

    【解决方案2】:

    试试这个:

    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&lt;T&gt; 集合传递给它,它就会找到字符串中的最大宽度。然后,您可以相应地调整组合框的宽度。 myComboBox.Width = GetMaxSize().Width

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多