Создание мастеров для Windows Forms в C #
39033 просмотра
3 ответа
Я новичок в создании мастеров для приложения Windows Forms в C # .Net. Так что я не имею ни малейшего представления о создании волшебников. Пожалуйста, дайте мне несколько идей о создании Мастера.
С уважением, рави
Автор: Ravi Источник Размещён: 12.11.2019 09:43Ответы (3)
133 плюса
Много способов сделать это. Создание формы для каждого шага мастера возможно, но очень неудобно. И ужасно, много мерцания, когда пользователь меняет шаг. Делая каждый шаг, который может работать UserControl, вы просто переключаете их в коллекцию Controls формы. Или сделайте один из них Visible = true для каждого шага. Дизайн UC имеет тенденцию становиться запутанным, хотя вы должны добавить открытые свойства для каждого элемента пользовательского интерфейса.
Самый простой и быстрый способ - использовать TabControl. Очень хорошо работает в дизайнере, поскольку позволяет переключать вкладки во время разработки и удалять элементы управления на каждой вкладке. Переключение шагов тривиально, просто измените свойство SelectedIndex. Единственное, что нетривиально - это скрывать вкладки во время выполнения. Все еще легко сделать, обработав сообщение Windows. Добавьте новый класс в форму и вставьте код, показанный ниже. Compile. Перетащите новый элемент управления из верхней части панели инструментов на форму.
using System;
using System.Windows.Forms;
class WizardPages : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}
Автор: Hans Passant
Размещён: 26.02.2010 02:40
29 плюса
class WizardPages : TabControl
{
protected override void WndProc(ref Message m)
{
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
protected override void OnKeyDown(KeyEventArgs ke)
{
// Block Ctrl+Tab and Ctrl+Shift+Tab hotkeys
if (ke.Control && ke.KeyCode == Keys.Tab)
return;
base.OnKeyDown(ke);
}
}
Автор: Cluster
Размещён: 28.06.2012 02:13
1 плюс
Вы должны создать свой собственный, чтобы удовлетворить ваши собственные предпочтения. Совет будет для вас создать базовую форму с именем, подобным "frmWizard", тогда все ваши окна мастера будут наследоваться от него. Вы должны поместить общие объекты или объекты мастера в базовый класс и изменить \ переопределить их в производном классе, если это необходимо.
Автор: Jojo Sardez Размещён: 26.02.2010 09:41Вопросы из категории :
- c# Преобразовать десятичную в двойную?
- c# Как рассчитать чей-то возраст в C #?
- c# Как вы сортируете словарь по значению?
- c# В чем разница между int и Integer в Java и C #?
- c# Как создать новый экземпляр объекта из Типа
- c# Datatable против Dataset
- winforms Как заставить кнопку выглядеть так, как будто она нажата?
- winforms Лучший способ получить доступ к элементу управления в другой форме в Windows Forms?
- winforms Можете ли вы использовать общие формы в C #?
- winforms Как отключить Alt + F4 закрытие формы?
- winforms Привязка данных WinForms и отношения внешних ключей
- winforms Вставить файл Chooser в UserControl / Form
- wizard Сделайте приложение-мастер в Android
- wizard Создание мастеров для Windows Forms в C #
- wizard Мастер создания сценариев SQL Server 2008 дает мне сценарий, который приводит к «незамеченным кавычкам»
- wizard Как отловить первое отображение WizardPage
- wizard Eclipse не создает новый файл .java в мастере создания нового проекта?
- wizard Как установить пользовательский текст на кнопках в JFace Wizard (Java)