Модераторы: 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   Вверх
FrozenSky
Дата 18.9.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

FrozenSky, я ламер, не спорюsmile
Но даже в МСДН написано, что установка значения ДиалогРезульту скрывает форму.  


смотри первую строку))
PM MAIL   Вверх
mr.DUDA
Дата 19.9.2006, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(FrozenSky @  15.9.2006,  11:09 Найти цитируемый пост)
ну не может быть такого))) переменная DialogResult служит только для того, что бы понять,  как отработало диалоговое окно... в коде программы ты можешь по сто раз менять значение ДиалогРезалта... и что, после каждого изменения форма должна закрываться? бред... по моему ты либо просто стебёшься, либо просто ламер)) извини за грубость))


M
mr.DUDA
Во-первых, давай без выражений.


Во-вторых, reloni почти прав:

Цитата
If the DialogResult for this property is set to anything other than None, and if the parent form was displayed through the ShowDialog method, clicking the button closes the parent form without your having to hook up any events. The form's DialogResult property is then set to the DialogResult of the button when the button is clicked.

Единственная фишка в том, что закрываться форма будет, если открывали методом ShowDialog, т.е. модально.
 


--------------------
user posted image
PM MAIL WWW   Вверх
reloni
Дата 19.9.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(mr.DUDA @  19.9.2006,  09:51 Найти цитируемый пост)
Единственная фишка в том, что закрываться форма будет, если открывали методом ShowDialog, т.е. модально.

Я это и имел ввидуsmile
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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