加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 放置在TableLayout中的对接控件不会自动缩小到其创建大小

发布时间:2020-12-15 04:22:22 所属栏目:百科 来源:网络整理
导读:这个问题比所解释的更好地展示,所以我已经设置了一个使用Visual Studio 2010项目的 git repo,用于查看问题. 我有一个项目,我已经将一个ComboBox控件(comboField)添加到TableLayout控件(tableLayoutPanel1).我已经将ComboBox的Dock属性设置为Fill,以便填充已
这个问题比所解释的更好地展示,所以我已经设置了一个使用Visual Studio 2010项目的 git repo,用于查看问题.

我有一个项目,我已经将一个ComboBox控件(comboField)添加到TableLayout控件(tableLayoutPanel1).我已经将ComboBox的Dock属性设置为Fill,以便填充已放置在TableLayout控件中的单元格.我还将TableLayout控件的Dock属性设置为Fill,以便填充Form它被放在了. ComboBox的宽度目前为193像素.

当我运行窗体并增加宽度时,ComboBox的大小会按预期的增加.当我减小表单的大小时,ComboBox的大小减小到达原始大小(193像素).在这一点上,ComboBox的宽度不会进一步减小,导致控件的右侧被剪切.这与我预期的相反:由于没有指定MinimumSize,ComboBox的宽度将减小到0.没有为表单上的任何其他控件(如TableLayout控件)指定了MinimumSize.

在相关的情况下,TableLayout的第一列的宽度被设置为100像素的绝对大小,而TableLayout的第二列的宽度已设置为AutoSize.

任何人都可以清楚,为什么这种形式与我的期望相违背,并就如何以我想要的方式得到这种工作提供建议?任何帮助将不胜感激.

解决方法

tablelayoutpanel似乎存储控件的初始大小,不管它们是对接,锚定还是其他任何值,如AutoSizeMode.GrowAndShrink,都不会使它们更小.在设计器中,对接控件的大小总是存储的,所以我发现最简单的方法是在initializecponpon后将宽度设置为0(由于控件停靠,实际上不会调整组合框的大小,允许桌面面板使其与设置的宽度一样小)
InitializeComponent();
        comboField.Width = 0;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读