Как открыть новый контент в форме, не открывая новую форму? - PullRequest
0 голосов
/ 07 мая 2020

Как сделать так, чтобы полноэкранное содержимое отображалось / изменялось в форме при нажатии кнопки?

Например, у меня есть меню, и когда я нажимаю в нем "новый файл" он открывает новый редактируемый файл в том же, уже открытом, окне. будет означать, что все windows открываются автоматически, как только программа открывается. Но что, если у меня есть сотни возможных windows !? Это была бы очень медленная программа. Нет ли возможности открыть только ту часть контента, которая необходима прямо сейчас, а не скрыть (сделать «невидимым») остальное?

1 Ответ

0 голосов
/ 07 мая 2020

Самый простой способ - использовать дизайнер Visual Studio для разработки формы и добавления элементов, которые должны отображаться при каждом нажатии кнопки. Сделайте все эти элементы невидимыми, установив для свойства Visible значение false.

// these existing controls should be made visible when button is clicked
private IEnumerable<Control> myBusyControls = new List
{
    this.ProgressBar1,   // shows Progress
    this.BusyImage,      // shows that I am busy
    ...
}

private void ShowBusy(bool busy)
{
    foreach (var control in myBusyControls)
    {
        control.Enabled = busy;
    }
}

private void OnButtonStartProcess(object send, EventArgs e)
{
     // disable sender, so the process can't be started twice
     ((Control)sender).Enabled = false;
     this.ShowBusy(true);
     this.StartProcess();   
}

// this will be called when the process is finished:
private void OnProcessFinished()
{
     this.ShowBusy(false);
     this.buttonStartProcess.Enabled = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...