首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoResize DataGridView列在TabPages上

AutoResize DataGridView列在TabPages上
EN

Stack Overflow用户
提问于 2016-08-18 14:28:38
回答 2查看 278关注 0票数 0

我对AutoResize在DataGridView上有一点小问题。我是这样做的:

代码语言:javascript
复制
 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,但是这部分:

代码语言:javascript
复制
 dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)

AutoResize只在tabPage =第一页上使用DataGridView,而在其他页面上则不工作。

有人能帮我找出代码问题吗?

假设是:

它必须在每一个AutoResize DataGridView上使用TabControlPage。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-18 19:26:12

TabControl有一个令人讨厌的习惯,就是阻止未选定的 TabPages的子代执行他们的布局。

因此,您需要在填充和设置其AutoResizeColumns属性之前,先选择每个TabPage

代码语言:javascript
复制
tabControl_Rozliczenie.TabPages.Add("Page " + list[i]);
tabControl_Rozliczenie.SelectedTab = tabControl_Rozliczenie.TabPages["Page " + list[i]];
票数 1
EN

Stack Overflow用户

发布于 2016-08-18 15:05:09

这只是一次黑暗中的尝试,所以如果没有帮助的话,很抱歉,但问题是您要将dataGridView添加到控件列表中,然后更改AutoResizeColumns选项吗?您是否尝试过将订单更改为:

代码语言:javascript
复制
dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
tabControl_Rozl.TabPages[i].Controls.Add(dataGridView);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39020842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档