Проблема динамического графического интерфейса настольных приложений - PullRequest
0 голосов
/ 26 января 2010

Я задал вопрос "Есть ли что-то вроде главной страницы в настольных приложениях?" Теперь я нахожусь в положении, когда мне нужно расширить вопрос. Спасибо за понимание.

Я добавил в свой проект одну основную форму MDI и несколько унаследованных форм, которые наследуют основную форму MDI. Я использовал этот код.

private void searchToolStripMenuItem_Click(object sender, EventArgs e)
{
    foreach (Form child in this.MdiChildren)
    {
       child.Close();
    }   

    Search childSearchForm = new Search();
    childSearchForm.MdiParent = this;
    childSearchForm.Text = "Search ";
    childSearchForm.Show();            
}

Этот код срабатывает, когда я нажимаю какую-либо кнопку в мастер-форме, и новая в этом случае форма поиска открывается внутри мастера.

Теперь мой вопрос - правильный способ создания настольных приложений, или есть какой-то другой, более элегантный способ, при котором содержимое пользовательского интерфейса может быть динамичным и переключаться с одного вида на другой, нажимая кнопки внутри. Например, нажав кнопку «Поиск» в какой-либо форме поиска, вы попадете в таблицу результатов поиска, все это происходит в одной главной форме.

И если это правильный путь (в чем я сомневаюсь), как мне добиться открытия других внутренних форм, нажав на кнопки внутри них. Также, если я добавлю некоторые элементы управления на мастер-страницу, они появятся два раза в основной и в унаследованной форме.

Спасибо.

PS

Я использую Visual Studio 2008 и MS SQL 2005.

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Если вы хотите показывать только одно представление за раз, вы можете создать новый пользовательский элемент управления для каждого представления, которое вам требуется. например, один для ваших результатов поиска.

Затем вы можете добавить панель, очистить элементы управления, содержащиеся на панели, и добавить новый, чтобы отобразить нужный вам вид.

Или, как описано, другой вариант - использовать элемент управления вкладками, скрывать вкладки и программно устанавливать видимый индекс.

0 голосов
/ 26 января 2010

Не уверен, что вы легко могли бы сделать это в winforms, но в WPF вы могли бы создать навигационное приложение - навигацию, основанную на ссылках, аналогичную веб-браузеру, но все еще автономное приложение. См. http://msdn.microsoft.com/en-us/rampup/cc514215.aspx для получения подробной информации о том, как начать работу.

...