【问题标题】:how to create dynamically adjust width of column of dynamically created datagridview in c# windows application如何在 c# windows 应用程序中创建动态调整动态创建的 datagridview 列的宽度
【发布时间】:2016-01-31 15:28:09
【问题描述】:

我已经动态创建了 Datagrid ,但是我需要调整列的宽度,比如我有 Itemname 它的宽度应该是 150 数量应该是 50 等等。 这是我的动态数据网格代码:

           dtitem = loadbl.itemonkot(dt.Rows[0][2].ToString());
            DataGrid dgv = new DataGrid();
            dgv.Location = new Point(3, 48);
            dgv.Width = 302;
            dgv.Height = 223;
            dgv.RowHeadersVisible = false;
            dgv.Font = new System.Drawing.Font("Microsoft Sans Serif", 10);
            dgv.DataSource = dtitem;
            grpbx.Controls.Add(dgv);
            grpbx.Name = "order";
            grpbx.Text = "Order";
            grpbx.Width = 311;
            grpbx.Height = 322;
            grpbx.Location = new Point(12, 12);

我试过谷歌它说Here:

DataGridViewColumn column = dataGridView.Columns[0];
column.Width = 60;

如何设置我的数据网格,即; dgv

请帮忙,谢谢

【问题讨论】:

  • Winforms还没有DataGrid控制。
  • 你弄明白了吗?
  • @JeremyThompson 不,它没有工作,持有它一段时间,工作另一个,谢谢

标签: c# winforms dynamicgridview


【解决方案1】:

您是否尝试过类似的方法:

DataGridView dgv = new DataGridView();
...
dgv.Columns[0].Width = 150;

【讨论】:

  • 我在 dgv 中没有得到 .Columns
  • 那是因为你有一个 DataGrid 而不是 DataGridVIEW
  • 我尝试了 DataGrid 和 DataGridVIEW 但没有这样的 .Columns
  • 您能告诉我您如何在私有成员变量中保存对 dgv 的引用(或在表单控件集合中搜索它)并设置列宽吗?我不认为列会出现在智能感知中,因为控件不在范围/可访问范围内
  • 我认为你应该重新发布你的代码。您得到的错误是说您在尝试设置宽度时没有将任何列添加到DataGridView。您必须在设置数据源和/或创建列之后设置列宽。
【解决方案2】:

另一种方法是在填充数据后自动调整列大小。与:

dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

【讨论】:

  • 警告:当你有超过几百行时,该方法非常慢
猜你喜欢
  • 1970-01-01
  • 2021-04-20
  • 2021-08-05
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多