Пуш вниз автоматически не работает

1

Когда-то назад я задал этот вопрос. Я получаю ответ, и он отлично работал вовремя. Но теперь я пытаюсь сделать то же самое, но не работает. У меня есть Form и FlowLayoutPanel установленные так же, как и ответ, но он не работает. Обе Form имеет FLowLayoutPanel установила AutoSize истину и FlowDirection установлен TopDown но форма растет вертикально, не нажимая вниз progressBar управления и label себя. Здесь, как моя форма после нажатия кнопки несколько раз (код кнопки такой же, как и в принятом вопросе в ссылке, которую я связал):

Изображение 174551

Что мне не хватает?

Теги:
winforms
label
autosize

2 ответа

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);
}
  • 0
    Эта строка заставила его работать panel.MaximumSize = new System.Drawing.Size(panel.Width, int.MaxValue); Спасибо!
  • 0
    Потрясающие! Рад, что я мог помочь :)
0

Хорошо, я протестировал решение, предложенное в предыдущем посте, которое вы создали, и оно отлично работает для меня... Проверьте эти вещи:

  1. Убедитесь, что Label и ProgressBar расположены внутри FlowLayoutPanel

  2. Если вы имеете в виду, что он растет горизонтально <→, то установите MaximumSize-Width FlowLayoutPanel, насколько он может быть до того, как переключиться на новую строку (а оттуда - вертикально)!

  3. В противном случае, пожалуйста, предоставьте дополнительную информацию, чтобы я мог помочь вам оттуда.

  • 0
    Вы бы отправили мне (загрузите куда-нибудь и поделитесь ссылкой здесь) рабочий проект, который вы тестировали? Я получил его тогда, когда я принял ответ, но теперь по какой-то причине он больше не работает для меня. Понятия не имею, что изменилось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню