2014-04-18 27 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新形式實例。

相關問題