ToolStripComboBox -- 自动调整项目大小

发布于 2024-08-30 10:07:49 字数 135 浏览 5 评论 0原文

我有一个带有 ToolStripComboBox 控件的 ToolStrip,我希望它能够自动调整大小以适应下拉列表中最宽的项目。我怎样才能做到这一点? “Autosize”属性设置为“true”,但似乎没有任何区别。我已经为此烦恼了一段时间了。有可能吗?

I have a ToolStrip with a ToolStripComboBox control on it, and I would like it to autosize to fit the widest item in the drop down list. How can I accomplish that? The "Autosize" property is set to "true", but it doesn't seem to be making any difference. I've been banging my head over this for a while. Is it even possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇柔作态 2024-09-06 10:07:49

我也有同样的问题。我的解决方案是修改 DropDown 事件的大小。您可以在 MeasureString 中传递最大宽度,或者在设置 DropDownWidth 之前自行限制 maxWidth。

private void m_comboBox_DropDown(object sender, EventArgs e)
{
    using (System.Drawing.Graphics graphics = CreateGraphics())
    {
        int maxWidth = 0;
        foreach (object obj in m_comboBox.Items)
        {
            System.Drawing.SizeF area = graphics.MeasureString(obj.ToString(), m_comboBox.Font);
            maxWidth = Math.Max((int)area.Width, maxWidth);
        }
        m_comboBox.DropDownWidth = maxWidth;
    }
}

I had the same problem. My solution was to modify the size on the DropDown event. You can pass a max width in the MeasureString, or clamp maxWidth yourself before you set the DropDownWidth.

private void m_comboBox_DropDown(object sender, EventArgs e)
{
    using (System.Drawing.Graphics graphics = CreateGraphics())
    {
        int maxWidth = 0;
        foreach (object obj in m_comboBox.Items)
        {
            System.Drawing.SizeF area = graphics.MeasureString(obj.ToString(), m_comboBox.Font);
            maxWidth = Math.Max((int)area.Width, maxWidth);
        }
        m_comboBox.DropDownWidth = maxWidth;
    }
}
千と千尋 2024-09-06 10:07:49

根据这篇msdn文章AutoSize属性概述只有一些控件支持自动调整大小属性。 ComboBox 不支持 AutoSize。

According to this msdn article AutoSize Property Overview only some of the controls support the AutoSize property. ComboBox has no AutoSize support.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文