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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создаю "модальный диалог", Форму под диалог подгоняю. 
:(
    Опции темы
Rapalex
Дата 11.9.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



И создав 2 кнопки ок и отмена не могу найти как сделать так чтоб при нажатии на ентер срабатывало нажатие на кнопку ок а при нежатии на ескейп или красный крест в правом верхнем углу окна - стобатывало нажатие на кнопку отмена.
спс.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
Wanderer2019
Дата 11.9.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть два такие свойства AcceptButton и CancelButton у объекта Form. В них выбираешь необходимые тебе кнопки. А чтобы обработать нажатие на красный крест нужно писать обработчик события 
например Closing или Closed - в зависимости от точго чего хочешь обработать.


Это сообщение отредактировал(а) Wanderer2019 - 11.9.2006, 12:11
PM ICQ MSN   Вверх
Rapalex
Дата 11.9.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо.

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

Это сообщение отредактировал(а) Rapalex - 11.9.2006, 15:10


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
Wanderer2019
Дата 11.9.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если я прально понял вопрос, то нет.. это не одно и то же событие... 
Нужно будет обработать вышеописанные события...  - именно они вызываются при нажатии на красный крестик.... соответственно просто поставь на них вызов нажатия необходимой тебе кнопки.
PM ICQ MSN   Вверх
Rapalex
Дата 12.9.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



OK.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
FrozenSky
Дата 13.9.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я делал так:
Код

public class MyForm : Form
{

   private string result = "";

   <...code...>

   private void ButtonOk_Click(object o, EventArgs e)
   {
      result = "has benn clicked OK";
      DialogResult = DialogResult.OK;
      Close();
   }

   private void ButtonCancel_Click(object o, EventArgs e)
   {
      result = "has benn clicked Cancel";
      DialogResult = DialogResult.Cancel;
      Close();
   }

   public string GetValue()
   {
      if(this.ShowDialog()==DialogResult.OK)
      {
         return result;
      }
      else
     {
         return null;
     }
   }
}



Далее использование этого диалогвого окна:
Код

public void Button1_Click(object o, EventArgs e)
{
      MyForm _form = new MyForm();
      string str = _form.GetValue();
}
  

Это сообщение отредактировал(а) FrozenSky - 13.9.2006, 14:23
PM MAIL   Вверх
reloni
Дата 13.9.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(FrozenSky @  13.9.2006,  15:21 Найти цитируемый пост)
      
result = "has benn clicked OK";
DialogResult = DialogResult.OK;
Close();

Close() последней строчкой можно не писать, форма все равно закроется.
PM MAIL ICQ   Вверх
ivashkanet
Дата 13.9.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Цитата(reloni @  13.9.2006,  15:45 Найти цитируемый пост)
Close() последней строчкой можно не писать, форма все равно закроется.

Почему?
PM MAIL WWW ICQ   Вверх
reloni
Дата 13.9.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ivashkanet, у меня закрывается. Проверил экспериментальноsmile
PM MAIL ICQ   Вверх
FrozenSky
Дата 13.9.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



форма закроеться только если ты её определишь как AcceptButton или CloseButton. А я описывал пример для обыкновенной кнопки. По сути дела используя этот механихм в диалоге можно организовать сколько угодно кнопок какого угодно назвначения, удовлетворяющих перечислению  DialogResult.  Либо можно создать свой enum, создать в своём идалоге свойство, описанное этим енумом, и описывайте события диалогка как ващей душе угодно)))
PM MAIL   Вверх
reloni
Дата 13.9.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(FrozenSky @  13.9.2006,  18:14 Найти цитируемый пост)
 А я описывал пример для обыкновенной кнопки

Так я тоже. Она в любом случае закрывается.
PM MAIL ICQ   Вверх
FrozenSky
Дата 13.9.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



))
reloni, что то я тебя не аойму... как это у тебя по нажатию на обыкновенную кноаку закрывается форма? такого быть не может, они либо у тебя привязанны как Accept/Cancel либо в них описанны методы закрытия формы... другого не дано))))
PM MAIL   Вверх
reloni
Дата 13.9.2006, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



FrozenSky, а вот такsmile
Если в методе обработки нажатия кнопки, ДиалогРезульту присвоить какое-то значение, то форма пропадает. 

PM MAIL ICQ   Вверх
FrozenSky
Дата 15.9.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну не может быть такого))) переменная DialogResult служит только для того, что бы понять,  как отработало диалоговое окно... в коде программы ты можешь по сто раз менять значение ДиалогРезалта... и что, после каждого изменения форма должна закрываться? бред... по моему ты либо просто стебёшься, либо просто ламер)) извини за грубость))
PM MAIL   Вверх
reloni
Дата 15.9.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



FrozenSky, я ламер, не спорюsmile
Но даже в МСДН написано, что установка значения ДиалогРезульту скрывает форму. 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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