动态创建标签和富文本框
本文关键字:文本 创建 标签 动态 | 更新日期: 2023-09-27 18:09:45
我正试图在触发事件时显示x个标签和标签旁边的富文本框,不幸的是,我一直无法做到这一点,下面的代码显示了我试图仅使用5 labels
创建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
将进入Grid
。
您的代码就快到了。
更改主面板。子项到主面板。控件并在标签中添加一些文本,以便您可以看到它们。(顺便说一句,你正在创建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);
}
}
}
非常感谢您的帮助,您在这里发布的内容实际上帮助了我很多,然而,我通过使用以下代码解决了我的问题:
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。再次感谢!!!