C# 如何自动定位面板c上的按钮#

C# 如何自动定位面板c上的按钮#,c#,visual-studio-2010,C#,Visual Studio 2010,我有几个按钮要添加到表单上。在代码中,我设置了一些按钮属性: class DigitButton : Button { private static int digitBtnTag; public DigitButton() : base() { this.Size = new Size(30, 30); this.Tag = digitBtnTag; this.Text = (this.Tag).

我有几个按钮要添加到表单上。在代码中,我设置了一些按钮属性:

    class DigitButton : Button
{
    private static int digitBtnTag;

    public DigitButton()
        : base()
    {
        this.Size = new Size(30, 30);
        this.Tag = digitBtnTag;
        this.Text = (this.Tag).ToString();
        this.Margin = new Padding(2);
        this.Padding = new Padding(2);
        digitBtnTag++;
    }
}
在MainForm.cs中,我有

 for (int i = 0; i < dgtBtns.Length; i++)
        {
            dgtBtns[i] = new DigitButton();
            dgtBtns[i].Click += new EventHandler(this.digitButtonClick);
            digitPanel.Controls.Add(dgtBtns[i]);                
        }
for(int i=0;i

因此,当我启动一个程序时,我会在digitPanel上的一个位置看到我所有的按钮:(0;0),尽管有属性边界。那么,为什么这些按钮不能自动地在不同的方向上“按下”彼此呢?怎么做呢?

这不是c#中控件的工作方式。我猜您是用java编程的,因为jave中的布局工作得很好,但c#

for(int i=0;i

您必须通过尝试和查看来确定位置参数,这不是c#中控件的工作方式。我猜您是用java编程的,因为jave中的布局工作得很好,但c#

for(int i=0;i

您必须通过尝试和查看来确定位置参数。您需要定义左侧和顶部,然后在每次循环时添加按钮高度或宽度以正确定位按钮,即

int bTop=0;
int bLeft=0;

for (int i = 0; i < dgtBtns.Length; i++)
{
    dgtBtns[i] = new DigitButton();
    dgtBtns[i].Click += new EventHandler(this.digitButtonClick);
    dgtBtns[i].Top = bTop;
    bTop += dgtBtns[i].Height;
    digitPanel.Controls.Add(dgtBtns[i]);                
}
intbtop=0;
int-bLeft=0;
对于(int i=0;i
每次循环时,您需要定义“左”和“上”,然后添加按钮高度或宽度,以正确定位按钮,即

int bTop=0;
int bLeft=0;

for (int i = 0; i < dgtBtns.Length; i++)
{
    dgtBtns[i] = new DigitButton();
    dgtBtns[i].Click += new EventHandler(this.digitButtonClick);
    dgtBtns[i].Top = bTop;
    bTop += dgtBtns[i].Height;
    digitPanel.Controls.Add(dgtBtns[i]);                
}
intbtop=0;
int-bLeft=0;
对于(int i=0;i
您是否尝试过使用密码

此外,此视频可能有助于:

您是否尝试过使用一个

此外,此视频可能有助于:

Windows窗体无法动态布局。WPF确实并且可能符合您的要求。FlowLayout面板可以为您出色地工作。Windows窗体没有动态布局的能力。WPF确实并且可能符合您的要求。FlowLayout panel可能对您非常有用。是的,我试过了,一切都很完美,但一个人告诉我,按钮可以自动放置在表单上,而无需设置位置属性,但可以设置边距属性“这不是c#中控件的工作方式”-这是一个大胆的说法,先生:D@JohnSmith我查一下,但是我没听说过有一次我试过了,一切都很完美,但是有一个人告诉我,按钮可以自动放置在窗体上,而不需要设置位置属性,但是设置边距属性“这不是c#中控件的工作方式”-这是一个大胆的说法,先生:D@JohnSmith我会查一查,但我还没听说过