TabTages上的AutoResize DataGridView列

时间:2016-08-18 14:28:39

标签: c# .net datagridview autosize tabpage

我在DataGridView上遇到了一些AutoResize问题。 我这样做:

 for (int i = 0; i < list.Count; i++)
 {
      tabControl_Rozliczenie.TabPages.Add("Page " + list[i]);
      var dataGridView = new DataGridView()
      {
           Name = "dataGridView_" + list[i],
           Dock = DockStyle.Fill
      };

      dataGridView.CellValueChanged += 
              new DataGridViewCellEventHandler(dataGridView_ety_CellValueChanged);
      dataGridView.CellFormatting += 
              new DataGridViewCellFormattingEventHandler(dataGridView_ety_CellFormatting);
      dataGridView.DataSource = dataTable;

      tabControl_Rozl.TabPages[i].Controls.Add(dataGridView);
      dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); 
      dgwList.Add(dataGridView);
 }

它正在添加新的TabPages和DataGridViews,但这一部分:

 dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)

在tabPage [0] =第一页上仅AutoResize DataGridView,其余部分不起作用。

有人可以帮我找到代码问题吗?

假设是:

每个TabControlPage都必须AutoResize DataGridView。

2 个答案:

答案 0 :(得分:1)

TabControl有一种令人讨厌的习惯,即阻止未选中的 TabPages的孩子进行布局。

因此,在填写TabPage并设置其DataGridView属性之前,您需要选择每个AutoResizeColumns

tabControl_Rozliczenie.TabPages.Add("Page " + list[i]);
tabControl_Rozliczenie.SelectedTab = tabControl_Rozliczenie.TabPages["Page " + list[i]];

答案 1 :(得分:0)

这只是一个黑暗的镜头,所以道歉,如果它没有帮助,但问题可能是你将dataGridView添加到控件列表和然后更改AutoResizeColumns选项?您是否尝试将订单更改为:

dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
tabControl_Rozl.TabPages[i].Controls.Add(dataGridView);