Winforms 仅为AutoSizeColumns和AutoSizeRows之后的DataGridView的第1列定义自定义宽度
在我的WinForms项目中,有一个DataGridView运行良好 我将这些属性设置为它 而且它可以很好地调整列和行的大小。我想问,如何使我的第一个专栏比其他专栏更大 这就是我想做的Winforms 仅为AutoSizeColumns和AutoSizeRows之后的DataGridView的第1列定义自定义宽度,winforms,datagridview,resize,Winforms,Datagridview,Resize,在我的WinForms项目中,有一个DataGridView运行良好 我将这些属性设置为它 而且它可以很好地调整列和行的大小。我想问,如何使我的第一个专栏比其他专栏更大 这就是我想做的 myDataGridView.Columns[1].Width = 400; 但是当事件autosize引发时,我不会这样做,所以我将此代码放在它后面 编辑: 这就是我的DataGridView的样子 正如您所看到的,由于属性“AutoSizeColumnsMode Fill”和“AutoSizeRowsM
myDataGridView.Columns[1].Width = 400;
但是当事件autosize
引发时,我不会这样做,所以我将此代码放在它后面
编辑:
这就是我的DataGridView的样子
正如您所看到的,由于属性“AutoSizeColumnsMode Fill”和“AutoSizeRowsMode AllCells”的缘故,我的所有列的大小都相同,我只想使第一列比其他列大
当我尝试这样做时:
myDataGridView.DataSource = myDataTable;
myDataGridView.Columns[1].Width = 400;
我得到了以下错误:
System.NullReferenceException:“对未在对象实例上设置的对象的引用。”
只需添加myDataGridView.Columns[0].Width=400代码>到
表单加载
或在初始化组件()之后代码>它在表单构造函数中
就是
private void Form1_Load(object sender, EventArgs e)
{
// Create a new DataTable.
DataTable table = new DataTable("TestTable");
DataColumn column;
DataRow row;
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
table.Columns.Add(column);
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "name";
table.Columns.Add(column);
for (int i = 0; i <= 2; i++)
{
row = table.NewRow();
row["id"] = i;
row["name"] = "name " + i;
table.Rows.Add(row);
}
dataGridView1.DataSource = table;
dataGridView1.Columns[0].Width = 400;
}
第一列应该是索引0
,而不是1
。你能详细解释最后一句话吗?我会在另一张图片上更新问题,这样可能会更清楚。抱歉,我的英语不好。我遇到以下错误:System.NullReferenceException:“对对象实例上未设置的对象的引用”
dataGridView1.Columns[0]。宽度=400代码>此one@ChangeWorld你能提供更多关于myDataTable的信息吗?我用数据表更新了我的答案。你可以检查它是否有效。
public Form1()
{
InitializeComponent();
dataGridView1.Columns[0].Width = 400;
}