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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> автоматизация управления интерфейсом 
:(
    Опции темы
nmn
Дата 9.5.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



есть ли в C# механизмы автоматизации управления(активация, деактивация и др) интерфейсом? вручную при наличии большого количества элементов неудобно
PM Skype   Вверх
Partizan
Дата 9.5.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



nmn, чьим интерфейсом? своим? чужим?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
nmn
Дата 9.5.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



своим
PM Skype   Вверх
Springtime
Дата 10.5.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

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



А более поконкретней можно что необходимо?
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
DVariuS
Дата 10.5.2009, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я так подозреваю, что элементы необходимо поместить, скажем, на панель и активировать/деактивировать панель.
PM MAIL   Вверх
-Mikle-
Дата 10.5.2009, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



nmn, тебе что, лень на кнопки нажимать? Опиши что тебе нужно нормально, почему ты считаешь что выражаешься нормальным языком? 
Цитата(nmn @  9.5.2009,  17:13 Найти цитируемый пост)
автоматизации управления(активация, деактивация и др) интерфейсом

вот это ну ни о чем не говорит... Вот ты же себе хуже делаешь таким образом, вместо того чтобы получить нужный ответ уже в первом же топике, время твое уэодит на то, что бы потом пояснять народу что ты имел ввиду. Лучше потрать максимум 3-7 минут на описание того что тебе нужно, вместо того, чтобы ждать долго ответ  smile  Кстати уже сутки прошли, а ответ тебе никто не дал.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
nmn
Дата 12.5.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



извинте, что так долго не отвечал, не было доступа к сети

в кратце то что я хочу:

У приложения могут быть несколько состояний. В каждом состоянии активны только некоторые функции приложения (кнопки, списки, элементы меню и др.), остальные же нужно заблокировать; в другом состоянии активные элементы меняются, добавляются новые, убираются старые. Каждый раз менять вручную довольно утомительно, есть ли встроенный механизм автоматизации данных действий?
PM Skype   Вверх
Partizan
Дата 12.5.2009, 20:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



nmn, ну как...пишешь код - получаешь результат smile Вот тебе и автоматизация =)

Можно сделать класс-модельку и свойства контролов типа Enabled, Visible и т.д. забиндить на свойства модельки...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
-Mikle-
Дата 12.5.2009, 20:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Пока есть время, предваряю следующий вопрос и приведу реализованный пример идеи Partizan.

Этот класс имеет три свойства типа bool: State1, State2 и State3. Названия выбраны для примера и их кол-во тоже. На практике лучше дать другие, смысловые названия и их кол-во не ограничено.
Код

    class UIAutomizer : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(string propName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }

        bool _state1;
        public bool State1
        {
            get { return _state1; }
            set
            {
                if (_state1 == value) return;
                _state1 = value;
                // !!! эта важная строчка
                OnPropertyChanged("State1");
            }
        }

        bool _state2;
        public bool State2
        {
            get { return _state2; }
            set
            {
                if (_state2 == value) return;
                _state2 = value;
                // !!! эта тоже важная строчка
                OnPropertyChanged("State2");
            }
        }

        bool _state3;
        public bool State3
        {
            get { return _state3; }
            set
            {
                if (_state3 == value) return;
                _state3 = value;
                // !!! ну и эта само собой
                OnPropertyChanged("State3");
            }
        }
    }


Для примера-проверки сделаем формочку и кинем на нее 8 кнопок и три CheckBox.
Пропишем вот такой вот код:
Код

    public partial class Form1 : Form
    {
        UIAutomizer uiAutomizer;

        public Form1()
        {
            InitializeComponent();

            uiAutomizer = new UIAutomizer();

            // Привязываем некоторые контролы к свойству State1.
            button1.DataBindings.Add("Enabled", uiAutomizer, "State1");
            button7.DataBindings.Add("Visible", uiAutomizer, "State1");

            // а эти к свойству State2
            button2.DataBindings.Add("Enabled", uiAutomizer, "State2");
            button4.DataBindings.Add("Visible", uiAutomizer, "State2");
            button5.DataBindings.Add("Enabled", uiAutomizer, "State2");
            button8.DataBindings.Add("Enabled", uiAutomizer, "State2");

            // эти к свойству State3
            button3.DataBindings.Add("Enabled", uiAutomizer, "State3");
            button6.DataBindings.Add("Visible", uiAutomizer, "State3");
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            // меняем свойство State1 автомайзера
            uiAutomizer.State1 = checkBox1.Checked;
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            // меняем свойство State2 автомайзера
            uiAutomizer.State2 = checkBox2.Checked;
        }

        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            // меняем свойство State3 автомайзера
            uiAutomizer.State3 = checkBox3.Checked;
        }


Вуаля! Привязывать можно любые свойства типа bool любых контролов (кнопки, пункты меню и т.д.).


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
jonie
Дата 14.5.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



вообще говоря есть такой паттерн: http://www.rsdn.ru/article/patterns/State.xml


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


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(jonie @  14.5.2009,  12:26 Найти цитируемый пост)
вообще говоря есть такой паттерн

Приведи пример его использования в данном случае.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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