我想在TabControl中创建动态TabPages。在每个tabPage中,我创建了dataGridView,并且我想用这个dataGrid填充每个tabPage的整个空间。下面是代码,其中我这样做:Winforms中的动态创建TabPages的问题TabControl
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
}
但它不工作,becouse当我调整主窗口中,数据的GridView doesn.t改变其大小(虽然Dock属性设置为填补)。有任何想法吗?
是的,你是正确的,错误的是别的地方,即在主窗体构造函数中我调用SuspendLayout方法(我不不知道为什么),这会暂停此表单的布局逻辑。当我删除这个方法时,一切都开始工作。求助:) – mirt 2010-03-25 11:23:02