自动下推控制不起作用

时间:2015-04-08 06:34:51

标签: c# winforms label autosize

前段时间我问过this个问题。我得到了答案,它在时间上运作良好。但是现在,我试图做同样的事情但是没有工作。我有一个Form和一个FlowLayoutPanel设置与答案相同,但它不起作用。 Form FLowLayoutPanel已将AutoSize设置为true,FlowDirection设置为TopDown,但表单正在垂直增长而不会向下推动progressBar控件和label本身。点击按钮几次后,我的表格就像我的表格一样(按钮的代码与我链接的链接中的已接受问题相同):

enter image description here

我错过了什么?

2 个答案:

答案 0 :(得分:1)

试一下,看看它是否有效!

public Form1()
{
            InitializeComponent();

            Size = new Size(400, 150);
            AutoSize = true;
            AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;

            FlowLayoutPanel panel = new FlowLayoutPanel();
            panel.Size = new Size(200, 150);
            panel.MaximumSize = new System.Drawing.Size(panel.Width, int.MaxValue);
            panel.FlowDirection = FlowDirection.TopDown;
            panel.AutoSize = true;
            panel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
            Controls.Add(panel);

            Label label = new Label();
            label.Text = "Starting text!\n";
            label.Padding = new System.Windows.Forms.Padding(0, 0, 0, 50);
            label.AutoSize = true;
            panel.Controls.Add(label);

            ProgressBar progressBar = new ProgressBar();
            progressBar.Location = new Point(0, 125);
            progressBar.Size = new Size(190, 25);
            panel.Controls.Add(progressBar);

            Button button = new Button();
            button.Location = new Point(275, 50);
            button.Text = "Click me!";
            button.Click += (object sender, EventArgs e) => { label.Text += "some more text, "; };
            Controls.Add(button);
}

答案 1 :(得分:0)

好的,我已经测试了你之前发表的帖子中建议的解决方案,它对我来说很好...... 测试这些东西:

  1. 确保Label和ProgressBar都位于FlowLayoutPanel内

  2. 如果您的意思是它水平增长< ----&gt ;,那么将FlowLayoutPanel的MaximumSize-Width设置为切换到新行之前的宽度(以及从那里垂直增长!)

  3. 否则请提供更多信息,以便我可以从那里帮助您。