0
我有一個tablelayout面板,我在其中以編程方式添加行。當第一次打開表單時使用向此容器添加行(使用帶有新的ValidationForm()的語句)時,表格顯示正常。第二次,出於某種原因,我在頂部添加了行?在這裏看到的景象:TableLayoutPanel額外的行在頂部?
這不會影響我使用的行數,只顯示多餘的線條。每次關閉並打開表單時,行數都會增加。這裏是我用來添加行的代碼:
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);
}
}
可以肯定的是:rowCount是一個私有變量,但不是一個STATIC變量? –
Doh!它是!刪除靜態關鍵字固定它 –
我是一個新的SO,所以如果你發佈答案我會接受:-) –