C# 向windows窗体C动态添加组件#
我正在尝试添加字符串列表,用作windows窗体上标签的文本组件。下面是我用来做这件事的代码。我让它生成一个消息框来显示正在创建的内容,但是当我将它们添加到表单中时,表单上只会显示第一个字符串,尽管每个字符串都会弹出一个消息框,指示列表已正确填充。任何帮助都会很好C# 向windows窗体C动态添加组件#,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我正在尝试添加字符串列表,用作windows窗体上标签的文本组件。下面是我用来做这件事的代码。我让它生成一个消息框来显示正在创建的内容,但是当我将它们添加到表单中时,表单上只会显示第一个字符串,尽管每个字符串都会弹出一个消息框,指示列表已正确填充。任何帮助都会很好 List<Label> labelList; public void ShowDialog(List<String> columns) { labelList = new Li
List<Label> labelList;
public void ShowDialog(List<String> columns)
{
labelList = new List<Label>();
Form updateDialog = new Form();
updateDialog.Width = 500;
updateDialog.Height = 500;
for (int i = 0; i < columns.Count(); i++ )
{
//Label label = new Label() {Text=columns[i].ToString() };
labelList.Add(new Label() {Text=columns[i].ToString()});
}
for (int j = 0; j < labelList.Count(); j++ )
{
updateDialog.Controls.Add(labelList[j]);
MessageBox.Show(labelList[j].Text.ToString());
}
列表标签列表;
公共void显示对话框(列表列)
{
labelList=新列表();
Form updateDialog=新表单();
updateDialog.Width=500;
updateDialog.Height=500;
对于(int i=0;i
您需要设置所创建标签的位置。它们在位置(0,0)处相互重叠。您需要设置所创建标签的位置。它们在位置(0,0)处相互重叠.您需要设置所创建标签的位置。它们在位置(0,0)处相互重叠。您需要设置所创建标签的位置。它们在位置(0,0)处相互重叠
您还可以使用1循环来精确代码:
int yAxis = 10;
for (int i = 0; i < columns.Count(); i++ )
{
//create label
Label newLbl = new Label() {Text=columns[i].ToString()};
newLbl.Location = new Point(10, yAxis * i); //will create a column of all labels, you can use your oown logic too
//add to list
labelList.Add(newLbl);
//add to form
updateDialog.Controls.Add(newLbl);
//show on msg box
MessageBox.Show(newLbl.Text.ToString());
}
int-yAxis=10;
对于(int i=0;i
控件正在添加到表单中,但它们对您不可见。只需为每个标签设置不同的位置,您就会看到它们
您还可以使用1循环来精确代码:
int yAxis = 10;
for (int i = 0; i < columns.Count(); i++ )
{
//create label
Label newLbl = new Label() {Text=columns[i].ToString()};
newLbl.Location = new Point(10, yAxis * i); //will create a column of all labels, you can use your oown logic too
//add to list
labelList.Add(newLbl);
//add to form
updateDialog.Controls.Add(newLbl);
//show on msg box
MessageBox.Show(newLbl.Text.ToString());
}
int-yAxis=10;
对于(int i=0;i
控件正在添加到表单中,但它们对您不可见。只需为每个标签设置不同的位置,您就会看到它们
您还可以使用1循环来精确代码:
int yAxis = 10;
for (int i = 0; i < columns.Count(); i++ )
{
//create label
Label newLbl = new Label() {Text=columns[i].ToString()};
newLbl.Location = new Point(10, yAxis * i); //will create a column of all labels, you can use your oown logic too
//add to list
labelList.Add(newLbl);
//add to form
updateDialog.Controls.Add(newLbl);
//show on msg box
MessageBox.Show(newLbl.Text.ToString());
}
int-yAxis=10;
对于(int i=0;i
控件正在添加到表单中,但它们对您不可见。只需为每个标签设置不同的位置,您就会看到它们
您还可以使用1循环来精确代码:
int yAxis = 10;
for (int i = 0; i < columns.Count(); i++ )
{
//create label
Label newLbl = new Label() {Text=columns[i].ToString()};
newLbl.Location = new Point(10, yAxis * i); //will create a column of all labels, you can use your oown logic too
//add to list
labelList.Add(newLbl);
//add to form
updateDialog.Controls.Add(newLbl);
//show on msg box
MessageBox.Show(newLbl.Text.ToString());
}
int-yAxis=10;
对于(int i=0;i
因为您将它们放在彼此的顶部。您需要设置位置
属性(或顶部
/左侧
)以将它们放在您可以看到的位置。因为您将它们放在彼此的顶部。您需要设置位置
属性(或顶部
/左侧
)要将它们放置在您可以看到它们的位置。因为您将它们都放在彼此的顶部。您需要设置位置
属性(或顶部
/左侧
)以将它们放置在您可以看到它们的位置。因为您将它们都放在彼此的顶部。您需要设置位置
属性(或顶部
/左侧
)把它们放在你能看到的地方。明白了,这很有道理,很抱歉第一次在c#工作。我的背景都是java,所以我假设它会有一些基本的默认布局管理器,并将它们从左到右定位。我会拿着这个,并找出如何动态调整位置。谢谢!明白了,这很有意义,sorry第一次在c#工作。我的背景都是java,所以我假设它会有一些基本的默认布局管理器,并将它们从左到右定位。我会拿着这个,并找出如何动态调整位置。谢谢!明白了,很有意义,很抱歉第一次在c#工作。我的背景都是java,所以我也是Summed它将有一些基本的默认布局管理器,并将它们从左到右定位。我将利用这个,并找出如何动态调整位置。谢谢!明白了,这很有意义,很抱歉第一次在c#工作。我的背景都是java,所以我假设它将有一些基本的默认布局