gpt4 book ai didi

c# - 在 Winforms TabControl 中动态创建 tabPages 的问题

转载 作者:行者123 更新时间:2023-11-30 12:18:16 25 4
gpt4 key购买 nike

我想在 TabControl 中创建动态 tabPages。在每个 tabPage 中,我创建了 dataGridView,我想用这个 dataGrid 填充每个 tabPage 的整个空间。这是代码,我在其中执行此操作:

private void tabControlMutants_SelectedIndexChanged(object sender, EventArgs e)
{
DataGridView dgw = new DataGridView();

DataGridViewTextBoxColumn testCaseCol = new System.Windows.Forms.DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn resultCol = new System.Windoows.Forms.DataGridViewTextBoxColumn();
//
// dataGridView1
//
dgw.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dgw.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
testCaseCol,
resultCol});
dgw.Location = new System.Drawing.Point(3, 3);
dgw.Name = "dataGridView1";
dgw.AutoSize = true;
dgw.Dock = System.Windows.Forms.DockStyle.Fill;
dgw.TabIndex = 0;
//
// TestCaseColumn
//
testCaseCol.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
testCaseCol.HeaderText = "Test Case";
testCaseCol.Name = "TestCaseColumn";
//
// ResultColumn
//
resultCol.HeaderText = "Result";
resultCol.Name = "ResultColumn";

tabControlMutants.TabPages[(sender as TabControl).SelectedIndex].Controls.Add(dgw);
((System.ComponentModel.ISupportInitialize)(dgw)).EndInit();

//fill dataGridView

}

但它不起作用,因为当我调整主窗口大小时,数据 gridView 不会更改其大小(尽管停靠属性设置为填充)。有什么想法吗?

最佳答案

dgw.Dock = System.Windows.Forms.DockStyle.Fill; 语句移动到 below tabControlMutants.TabPages[...].Controls .Add(dgw);行。也许在 EndInit() 下方,我不确定。

并删除 dgw.Location = ... 行,因为它不需要。

编辑:

我刚刚进行了一些测试,这基本上应该可以工作。这意味着错误在其他地方,在未显示的代码中。也许在“填充行部分”。
我建议您开始删除部分代码以消除错误。

而且您确实意识到您每次选择一个选项卡时都会创建一个 Dgv,是吗?我假设这是演示代码。

关于c# - 在 Winforms TabControl 中动态创建 tabPages 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2514301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com