如何获取特定行以插入控件
How to get specific row to insert controls
我正在尝试在 c# tableLayoutPanel 中的确定位置插入一行。
我需要检查其中一个标签中不包含复选标记的第一行,并将其设置为要插入控件的行。
尽管我认为我在for循环中设置了insertRow,但是当它到达插入行的位置时,insertRow值是0。似乎当退出for循环时,insertRow值恢复回来到 0。如果我不使用“= 0”初始化 insertRow,那么当我收到有关使用未分配变量的错误消息时。如果有任何帮助,我将不胜感激。
int insertRow = 0;
int rowCount = tableLayoutPanel2.RowCount;
//Get first row without member listed
for (int i = 1; i <= rowCount - 1; i++)
{
if (tableLayoutPanel2.GetControlFromPosition(1, i).Text != "✔")
{
insertRow = i;
}
}
//Add Row to table
tableLayoutPanel2.RowCount++;
tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29));
//Insert Row
tableLayoutPanel2.Controls.Add(new Label() { Text = Name.Text, TextAlign = ContentAlignment.MiddleCenter, Anchor = AnchorStyles.None, AutoSize = false }, 0, insertRow);
原来我需要的只是 "break" 退出循环以保持 insertRow 变量设置。
for (int i = 1; i <= rowCount - 1; i++)
{
if (tableLayoutPanel2.GetControlFromPosition(1, i).Text != "✔")
{
insertRow = i;
break;
}
}
//Add Row to table
tableLayoutPanel2.RowCount++;
tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29));
//Insert member
tableLayoutPanel2.Controls.Add(new Label() { Text = Name.Text, TextAlign = ContentAlignment.MiddleCenter, Anchor = AnchorStyles.None, AutoSize = false }, 0, insertRow);
我正在尝试在 c# tableLayoutPanel 中的确定位置插入一行。
我需要检查其中一个标签中不包含复选标记的第一行,并将其设置为要插入控件的行。
尽管我认为我在for循环中设置了insertRow,但是当它到达插入行的位置时,insertRow值是0。似乎当退出for循环时,insertRow值恢复回来到 0。如果我不使用“= 0”初始化 insertRow,那么当我收到有关使用未分配变量的错误消息时。如果有任何帮助,我将不胜感激。
int insertRow = 0;
int rowCount = tableLayoutPanel2.RowCount;
//Get first row without member listed
for (int i = 1; i <= rowCount - 1; i++)
{
if (tableLayoutPanel2.GetControlFromPosition(1, i).Text != "✔")
{
insertRow = i;
}
}
//Add Row to table
tableLayoutPanel2.RowCount++;
tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29));
//Insert Row
tableLayoutPanel2.Controls.Add(new Label() { Text = Name.Text, TextAlign = ContentAlignment.MiddleCenter, Anchor = AnchorStyles.None, AutoSize = false }, 0, insertRow);
原来我需要的只是 "break" 退出循环以保持 insertRow 变量设置。
for (int i = 1; i <= rowCount - 1; i++)
{
if (tableLayoutPanel2.GetControlFromPosition(1, i).Text != "✔")
{
insertRow = i;
break;
}
}
//Add Row to table
tableLayoutPanel2.RowCount++;
tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29));
//Insert member
tableLayoutPanel2.Controls.Add(new Label() { Text = Name.Text, TextAlign = ContentAlignment.MiddleCenter, Anchor = AnchorStyles.None, AutoSize = false }, 0, insertRow);