c# - 动态创建winforms控件

标签 c# winforms

我正在学习 C#。我想动态创建一些控件。这是我尝试在表单上动态创建新元素的代码,但它什么也没做。请帮我解决这个问题。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

    namespace Sampless
    {
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int n = 4;

        private void btnDisplay_Click(object sender, EventArgs e)
        {
            TextBox[] textBox = new TextBox[n];
            Label[] label = new Label[n];

            for (int i = 0; i < n; i++)
            {
                textBox[i] = new TextBox();
                textBox[i].Name = "n" + i;
                textBox[i].Text = "n" + i;

                label[i] = new Label();
                label[i].Name = "n" + i;
                label[i].Text = "n" + i;
            }

            for (int i = 0; i < n; i++)
            {
                this.Controls.Add(textBox[i]);
                this.Controls.Add(label[i]);
            }
        }
    }
}

最佳答案

您将所有控件叠加在一起,这就是为什么看起来只有其中一个控件的原因。您需要将它们放在某种基于布局的控件/面板(例如 FlowLayoutPanel)中,它会根据您想要的布局类型自动将结构放置在适当的位置。

关于c# - 动态创建winforms控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21633826/

相关文章:

c# - .Net Standard 2.0 dll 的 .Net 45 序列化

c# - 我可以使用什么作为 C++ 中 Environment.SpecialFolder.CommonApplicationData 的等效项?

c# - 在 C# 中将控件和变量的状态从一个窗体复制到另一个窗体

.net - Windows 窗体中 native 可选择的自动调整大小的标签

C# JSon 解析器错误

c# - DataContractSerializer 和 Dictionary<string,object> 读取时失败

c# - 在安装过程中获取应用程序路径

c# - 检测非聚焦窗口上的鼠标滚轮?

c# - 菜单项的工具提示被子菜单下拉列表隐藏

c# - 从 WPF System.Windows.Shapes.Path 创建图像