Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пошаговое изменение формы, Пошаговое изменение формы 
:(
    Опции темы
albert21
  Дата 26.7.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Добрый день.

Прошу совета в решении следующей задачи. Необходимо создать приложение, главная форма которого меняла бы свой вид (количество кнопок, полей ввода, их расположение на форме и пр. ) в зависимости от "шага", на котором работает пользователь.

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

Буду благодарен за любые предложенные решения.

Добавлено через 4 минуты и 10 секунд
Один из вариантов решения:

Все необходимые элементы для каждого шага размещать на одной форме. На каждом шаге отображать только необходимые элементы, а остальные скрывать. 

Минусы: Почти нериально работать с дизайнером форм. Получается "каша" в классе для формы.
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
jonie
Дата 26.7.2010, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



albert21, TabControl вас спасёт. Раскидывайте компоненты по табам, далее показывайте нужный tab. Никакой путаницы не будет (ну а заголовок контрола (сами вкладки) либо скрываете установив размер в 0, либо закрываете например панелькой, либо позиционируете элемент на форме так, чтобы вкладки были "за окном")...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
albert21
Дата 26.7.2010, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Спасибо, jonie, не плохой вариант. Может ещё варианты будут?
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
Fortnox
Дата 26.7.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 2
Всего: 22



Почему бы не использовать готовое решение? 
TSWizard
Да и поиск по "C# wizard" на codeproject выдает много статей по мастерам.
PM MAIL   Вверх
albert21
Дата 26.7.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Готовый визард - это здорово, но мне нужно более общее решение. Не стоит задача написать визард! Задача описана в первом топике
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
Fortnox
Дата 26.7.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 2
Всего: 22



albert21, я понял. Поэтому и привел ссылку на TSWizard, там готовый визард (основа, шаблон), где просто нужно сделать страницы, более того, там уже есть шаблоны для страниц с готовой логикой, надо только расположить их в нужном порядке, добавить свои элементы управления и так далее. Коротко говоря, основа у вас уже будет, останется только добавить нужные страницы со своими элементами управления.

Это сообщение отредактировал(а) Fortnox - 26.7.2010, 13:56
PM MAIL   Вверх
albert21
Дата 27.7.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Хочу дополнить вариант с TabControl`м

Рецепт того Как скрыть заголовок TabPage. Источник Как скрыть заголовок у TabPAge

"Добавьте в свой проект новый класс, разместите код приведенный ниже и постройте проект. Вы теперь можете вытащить элемент управления из заголовка панели инструментов на вашу форму. В дизайнере элемент управления выглядит как обычный TabControl. Во время запуска вы видите только страницу. Используйте атрибут SelectedIndex для перехода между страницами."

Код

using System;
using System.Windows.Forms;
 
public 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);
    }
}

--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
N1ko
Дата 27.7.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



А так не сойдёт?

ItemSize -> 0; 1 

SizeMode ->Fixed 


Это сообщение отредактировал(а) N1ko - 27.7.2010, 18:03
PM MAIL ICQ   Вверх
albert21
Дата 27.7.2010, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Цитата

А так не сойдёт?

ItemSize -> 0; 1 

SizeMode ->Fixed 


К сожалению не сойдёт. При таком подходе слева сверху остаётся заметный "кусочек" из TabPage`ов.
Не знаю можно ли добиться того же эфекта без применения WinAPI! Наверное можно, но очень уж не хочется копаться (с пол пинка не получилось у меня).
--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
jonie
Дата 27.7.2010, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



albert21, сверху можно наложить панельку без бордюров и жить счастливо )


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0810 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.