Cap*_*mic 40 .net controls datagridview winforms
我有一个带DataGridView
控件的WinForms应用程序.我的控件有五列(比如"姓名","地址","电话"等)
我对默认列宽不满意.我希望能更好地控制列外观.我想要的是能够做到以下之一:
请建议 - 使用哪个属性以及如何使用.
Bha*_*kar 54
您可以使用DataGridViewColumn.Width属性来执行此操作:
DataGridViewColumn column = dataGridView.Columns[0];
column.Width = 60;
Run Code Online (Sandbox Code Playgroud)
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.width.aspx
小智 30
以下也可以尝试:
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
Run Code Online (Sandbox Code Playgroud)
或使用DataGridViewAutoSizeColumnsMode枚举中的其他设置选项
Mar*_*ata 22
上述大部分解决方案的假设母公司DateGridView
拥有.AutoSizeMode
不等于Fill
.如果设置.AutoSizeMode
为网格是Fill
,你需要设置AutoSizeMode为每列是None
,如果你想解决一个特定的列宽(并让其他列填写).如果更改列宽并且.AutoSizeMode
不是None
第一个,我发现了一个关于null对象的奇怪的MS异常.
这有效
chart.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
... add some columns here
chart.Column[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
chart.Column[i].Width = 60;
Run Code Online (Sandbox Code Playgroud)
这会引发关于设置边框厚度的某些内部对象的null异常.
chart.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
... add some columns here
// chart.Column[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
chart.Column[i].Width = 60;
Run Code Online (Sandbox Code Playgroud)
Jer*_*y L 12
我知道这是一个老问题,但没有人回答第一部分,设置宽度百分比. 这可以通过FillWeight(MSDN)轻松完成.如果其他人搜索到这个答案.
您可以将DataGridAutoSizeColumnMode设置为填充设计器.默认情况下,每列FillWeight为100.然后在代码隐藏,FormLoad事件或将数据绑定到网格之后,您可以简单地:
gridName.Columns[0].FillWeight = 200;
gridName.Columns[1].FillWeight = 50;
Run Code Online (Sandbox Code Playgroud)
等等,无论你想要什么比例的重量.如果您希望每个列的数字加起来为100,对于文字百分比宽度,您也可以这样做.
它提供了一个很好的完整DataGrid,其中标题使用整个空间,即使用户调整窗口大小.在宽屏上看起来不错,4:3,无论如何.
关于你的最后一颗子弹
使宽度适合文本
您可以尝试使用DataGridViewColumn的.AutoSizeMode,将其设置为以下值之一:
None
AllCells
AllCellsExceptHeader
DisplayedCells
DisplayedCellsExceptHeader
ColumnHeader
Fill
Run Code Online (Sandbox Code Playgroud)
有关MSDN页面的更多信息