【问题标题】:why doesnt my panel show all my buttons in my c# application?为什么我的面板不显示我的 c# 应用程序中的所有按钮?
【发布时间】:2010-06-04 18:07:25
【问题描述】:

我的 Windows 窗体应用程序中的面板不包括我要求的所有按钮。它只显示1个按钮,这是代码

 private void AddAlphaButtons()
        {
            char alphaStart = Char.Parse("A");
            char alphaEnd = Char.Parse("Z");

        for (char i = alphaStart; i <= alphaEnd; i++)
        {
            string anchorLetter = i.ToString();
            Button Buttonx = new Button();
            Buttonx.Name = "button " + anchorLetter;
            Buttonx.Text = anchorLetter;
            Buttonx.BackColor = Color.DarkSlateBlue;
            Buttonx.ForeColor = Color.GreenYellow;
            Buttonx.Width = 30;
            Buttonx.Height = 30;

            this.panelButtons.Controls.Add(Buttonx);

            //Buttonx.Click += new System.EventHandler(this.MyButton_Click);
        }
    }

【问题讨论】:

  • 为什么投反对票?这可能是一个初学者的问题,但它包含足够的信息和代码,以便能够找到可能的问题(正如 Paul 几乎立即所做的那样)。

标签: c# panel dynamic


【解决方案1】:

他们不是都处于同一个位置吗?

尝试设置Buttonx.Location = new Point(100, 200);

(但不同的按钮有不同的点)

【讨论】:

    【解决方案2】:

    您可以使用 FlowLayoutPanel,它会为您处理布局,或者您需要自己跟踪位置,或者看起来像这样:

    private void AddAlphaButtons()
    {
        char alphaStart = Char.Parse("A");
        char alphaEnd = Char.Parse("Z");   
    
        int x = 0;  // used for location info
        int y = 0;  // used for location info
    
        for (char i = alphaStart; i <= alphaEnd; i++)
        {
            string anchorLetter = i.ToString();
            Button Buttonx = new Button();
            Buttonx.Name = "button " + anchorLetter;
            Buttonx.Text = anchorLetter;
            Buttonx.BackColor = Color.DarkSlateBlue;
            Buttonx.ForeColor = Color.GreenYellow;
            Buttonx.Width = 30;
            Buttonx.Height = 30;
    
            // set button location
            Buttonx.Location = new Point(x, y);
    
            x+=30;
            if(x > panel1.Width - 30)
            { 
                x = 30;
                y+=30;
            }
    
            this.panelButtons.Controls.Add(Buttonx);
    
            //Buttonx.Click += new System.EventHandler(this.MyButton_Click);
         }
    }
    

    【讨论】:

    • 成功了!!非常感谢,你是真正的程序员
    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多