【问题标题】:Dynamic button-C#动态按钮-C#
【发布时间】:2019-12-18 22:15:26
【问题描述】:

我有按钮这个按钮用于我想要的类别当点击这个按钮时我想从数据库产品表中获取行并获取两个数据产品名称和价格并将这些值设置为 Windows 应用程序中的动态按钮 注意我为按钮设置了位置属性,例如 flowLayoutPanel 我有这个代码

private void btnhotdrink_Click_1(object sender, EventArgs e)
    {
        //int StartPositition = 100;
        //int EndPosition = 10;
        DataTable dt = new DataTable();
        dt =clsprdcat.GET_HOTDRINK_CATEGORY();

        for(int i=0; i < dt.Rows.Count; i++)
        {
            for (int s=0; s < dt.Columns[4]; s++)
            {
                Button l = addbuttons(i,s);
                flowLayoutPanel1.Controls.Add(l);
                //EndPosition +=70;
            }
        }
    }

    Button addbuttons(int i)
    {
        Button l = new Button();
        l.Name = "Name" + l.ToString();
        l.Text = "label" + l.ToString();
        l.ForeColor = Color.White;
        l.BackColor = Color.Green;
        l.Font = new Font("Serif", 24, FontStyle.Bold);
        l.Width = 170;
        l.Height = 80;
        //l.Location = new Point(start, end);
        l.TextAlign = ContentAlignment.MiddleCenter;
        l.Margin = new Padding(5);
        return l;
    }

我该怎么做

【问题讨论】:

  • 您需要设置按钮的位置属性。
  • 我有位置属性也不能更新我的问题谢谢

标签: c# windows frontend


【解决方案1】:

所有按钮本质上都是在运行时动态创建的。 Windows 窗体设计器通过部分类工作:您在一个部分工作。另一个是设计师(designer.cs)。在编译时,Designers 代码通过在构造函数中调用“InitializeComponents()”来执行。它只能做你能做的事情。

如果您在自己创建按钮方面需要帮助,您可以随时查看设计器部分。请注意不要更改该部分的任何内容。此系统之所以有效,是因为设计者专门在文件中编写,如果您进行手动更改,项目的编译/加载很容易卡住。

正如您现在编写的那样,此代码将在同一位置创建dt.Rows.Count 按钮。通常它需要访问循环变量的按钮创建代码,以适应每个后续元素的位置。我个人更喜欢将元素的定位尽可能地留给自动化。这些设计只是更好地适应分辨率和窗口大小的变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多