2014-04-18 26 views
0

我有一个tablelayout面板,我在其中以编程方式添加行。当第一次打开表单时使用向此容器添加行(使用带有新的ValidationForm()的语句)时,表格显示正常。第二次,出于某种原因,我在顶部添加了行?在这里看到的景象:TableLayoutPanel额外的行在顶部?

Extra Row lines at the top

这不会影响我使用的行数,只显示多余的线条。每次关闭并打开表单时,行数都会增加。这里是我用来添加行的代码:

private void insertRow(Label label, dynamic control) 
    { 
     // Create Panel 
     var panel = new Panel(); 
     // Set Object Properties 
     label.TextAlign = ContentAlignment.MiddleCenter; 
     label.Dock = DockStyle.Fill; 
     control.Dock = DockStyle.Fill; 
     panel.Dock = DockStyle.Fill; 

     //generate delete button 
     var delete = new Button(); 
     delete.Text = "X"; 
     delete.ForeColor = System.Drawing.Color.Red; 
     delete.MaximumSize.Height.Equals(40); 
     delete.Name = rowCount.ToString(); 
     delete.Dock = DockStyle.Right; 
     delete.Click += new EventHandler(deleteRow); 

     // Add Controls to the panel 
     panel.Controls.Add(control); 
     panel.Controls.Add(delete); 
     // add controls 
     //tableLayoutPanel_Validations.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 48F)); 
     tableLayoutPanel_Validations.RowCount = rowCount + 1; 
     tableLayoutPanel_Validations.Controls.Add(label, 0, rowCount); 
     tableLayoutPanel_Validations.Controls.Add(panel, 1, rowCount); 
     tableLayoutPanel_Validations.RowStyles.Add(new RowStyle(SizeType.AutoSize)); 
     rowCount++; 
    } 

rowCount是在运行时设置为0的私有int。

我的第一个直觉是整个表单在使用语句后会“重置”。窗体声明是公共部分类ValidationForm:表格{}

使用声明开放形式:

using (AVBuilder.ValidationForm validationBuilder = new AVBuilder.ValidationForm()) 
     { 
      if (validationBuilder.ShowDialog() == DialogResult.OK) 
      { 
       // ADD ITEM TO Validations LIST 
       ListViewItem result = new ListViewItem(validationBuilder.resultObject + " : " + validationBuilder.resultName); 
       result.SubItems.Add(validationBuilder.resultJson); 
       result.ToolTipText = result.Text; 
       listView_Validations.Items.Add(result); 
       //MessageBox.Show(validationBuilder.resultJson); 
      } 
     } 
+2

可以肯定的是:rowCount是一个私有变量,但不是一个STATIC变量? –

+0

Doh!它是!删除静态关键字固定它 –

+0

我是一个新的SO,所以如果你发布答案我会接受:-) –

回答

2

确保rowCount时变量未声明为static,因为它不会重置为0新形式实例。

相关问题