Windows Forms中DataGridView列宽配置与GetPreferredWidth方法的技术问询
Windows Forms中DataGridView列宽配置与GetPreferredWidth方法的技术问询
各位大佬,我在做Windows Forms项目时,关于DataGridView的列宽配置遇到了一些疑问,想过来请教下:
目前我设置了一个DataGridView,把它用DockStyle.Fill嵌入到父面板里,里面有两列:
- 第一列是复选框列(
DataGridViewCheckBoxColumn),我给它设了AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells,让它自动适配所有单元格内容的宽度 - 第二列是文本列(
DataGridViewTextBoxColumn),原本打算设置AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,让它填满网格剩下的空间
我的代码大概是这样的:
dc1 = new DataGridViewCheckBoxColumn(); dc1.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; // 第一列的其他初始化代码... dc2 = new DataGridViewTextBoxColumn(); dc2.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // 第二列的其他初始化代码...
现在我有点不确定的是:
- 这种配置下,当父面板的大小改变时,第一列的自动调整会不会影响第二列的Fill效果?会不会出现布局错乱的情况?
- 如果我想更精准地控制列宽,比如先用
GetPreferredWidth方法获取第一列的最优宽度,再手动计算第二列的宽度让它填满剩余空间,这种方式和直接用Fill模式相比,有什么优缺点?有没有需要注意的细节?
麻烦有经验的朋友帮忙解答下,谢谢啦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

