2012-01-09 2 views
1

В классе WPF есть класс страницы и навигационная функция. Я разрабатываю приложение Window forms и нуждаюсь в аналогичной функциональности. Каков простой и плавный способ подражать навигации между различными формами? Или, может быть, внутри должна быть одна форма и несколько контейнеров? Как я могу достичь навигационных функций?Эмуляция навигации между страницами в Winforms

ответ

1

Создать панель и Dock до Fill.

Then BringToFront панель.

Сделайте это для каждой «формы», в которой вы нуждаетесь.

EDIT: Это работает, как ожидалось:

public Form1() 
{ 
    InitializeComponent(); 
    Shown += Form1_Shown; 
    panel1.Dock = DockStyle.Fill; 
    panel2.Dock = DockStyle.Fill; 
} 

void Form1_Shown(object sender, EventArgs e) 
{ 
    panel1.BringToFront(); 
    Update(); 
    Thread.Sleep(3000); 
    panel2.BringToFront(); 
    Update(); 
    Thread.Sleep(3000); 
    panel1.BringToFront(); 
} 

EDIT: Добавлены Update(); «S из-за комментарием.

+0

Спасибо. Но BringToFront не работает. Я использовал свойство Visible панелей. – Peter17

+0

@ Peter17 'Visible' в порядке. Но я удивлен, что «BringToFront» не работает. Я добавил код, который работает на мой ответ. – ispiro

+0

Вызов Sleep (3000) в потоке пользовательского интерфейса * точно * достаточно, чтобы заставить Windows отображать окно-призрак с сообщением «Не реагировать» в строке заголовка. Предотвращение того, чтобы вы фактически увидели панель, которая когда-либо была доставлена ​​на фронт. Это ужасно плохой пример. –