我正在尝试在触发事件时在标签旁边显示x个标签和富文本框,遗憾的是我无法这样做,下面的代码显示我尝试创建{{1}仅部分使用labels
,但在编译和执行项目时甚至不显示它们。昨天和今天早上我整天搜索谷歌,但我找不到具体的例子。如果有人能指出我正确的方向(我仍然需要制作富文本框,但我认为这是与标签相同的过程)我非常感谢。感谢。
5 labels
List<Label> labels = new List<Label>();
for (int i = 0; i <= 5; i++)
{
Label label = new Label();
label.Name = "lbl" + i;
mainPanel.Children.Add(label);
}
我忘了提及这些Edit:
而Labels
会进入RichTextBoxes
。
答案 0 :(得分:2)
你的代码几乎就在那里。
将mainPanel.Children更改为mainPanel.Controls 并在标签上添加一些文字,以便您可以看到它们。 (顺便说一句,你创建6个标签而不是5,因为你使用0到5而不是0到<5)
这在流程布局面板中适用于我(在常规面板中,所有标签将彼此叠加):
private void button1_Click(object sender, EventArgs e)
{
List<Label> labels = new List<Label>();
for (int i = 0; i <= 5; i++)
{
Label label = new Label();
label.Name = "lbl" + i;
label.Text = "Test text";
mainPanel.Controls.Add(label);
}
List<RichTextBox> textBoxes = new List<RichTextBox>();
for (int col = 0; col < 2; col++)
{
for (int row = 0; row < 2; row++)
{
RichTextBox richTB = new RichTextBox();
richTB.Name = "textBox" + col + row;
tableLayoutPanel1.Controls.Add(richTB);
tableLayoutPanel1.SetColumn(richTB, col);
tableLayoutPanel1.SetRow(richTB, row);
}
}
}
答案 1 :(得分:0)
非常感谢你的帮助,你在这里发布的内容实际上帮了我很多,但是,我用这个代码解决了我的问题:
for (int i = 0; i < lineCount; i++)
{
TextBlock txtb = new TextBlock();
scrlPanel.RowDefinitions.Add(new RowDefinition());
txtb.Name = "txtb" + i;
txtb.Text = obj.ReadLine();
txtb.Height = 60;
txtb.Width = 110;
txtb.HorizontalAlignment = HorizontalAlignment.Left;
txtb.TextAlignment = TextAlignment.Justify;
txtb.TextWrapping = TextWrapping.Wrap;
txtb.ToolTip = txtb.Text;
scrlPanel.Children.Add(txtb);
Grid.SetRow(txtb, i);
}
for (int i = 0; i < lineCount; i++)
{
RichTextBox rtb = new RichTextBox();
Paragraph p = rtb.Document.Blocks.FirstBlock as Paragraph;
rtb.Name = "rtb" + i;
rtb.Height = 60;
rtb.Width = 220;
p.LineHeight = 1;
rtb.HorizontalAlignment = HorizontalAlignment.Right;
scrlPanel.Children.Add(rtb);
Grid.SetRow(rtb, i);
}
我不知道这是否是使用它的正确方法,但它有效:D。再次感谢!!!