Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вызвать модальную форму


Автор: Akella 21.4.2006, 12:39
Вот в Delphi делаю так:

Код

Uses form2;

...

//по нажатию кнопки вызываю форму редактирования Form2
//а уже на Form2 есть 2 кнопки: "Ок" и "Отмена",
//у кнопки ОК ModalResult установлен в mrOk, у кнопки Отмена ModalResult установлен в mrCancel
form2 := Tform2.create(self);
if form2.showmodal = mrOk then
begin
  Table1.Append;
  Table1.FieldByName('Name').AsString := form2.Edit1.Text;
  Table1.FieldByName('Phone').AsString := form2.Edit2.Text;
  Table1.post;
end;
FreeAndNil(form2);


внимание, вопрос:
- Как реалоизовать подобное на C# (MSVS 2005)??? 

Автор: Akella 21.4.2006, 15:49
smile  даааааа, активность поразительная, не то что в разделе Delphi, наверное этот C# очень популярен  smile , неужели никто не ответит?


вот малехо допёр, только не совсем правильно
fmAdd - уже создана в дизайнере и компоненты на ней стоят, только по нажатию кнопки создаётся и показывается пустая форма....
Код

        private void tsbAdd_Click(object sender, EventArgs e)
        {
            Form fmAdd = new Form();
            fmAdd.ShowDialog();
            fmAdd.Dispose();

        }



Добавлено @ 15:50 
 smile  даааааа, активность поразительная, не то что в разделе Delphi, наверное этот C# очень популярен  smile , неужели никто не ответит?


вот малехо допёр, только не совсем правильно smile 
fmAdd - уже создана в дизайнере и компоненты на ней стоят, только по нажатию кнопки создаётся и показывается пустая форма....
Код

        private void tsbAdd_Click(object sender, EventArgs e)
        {
            Form fmAdd = new Form();
            fmAdd.ShowDialog();
            fmAdd.Dispose();

        }

 smile  

Автор: ivashkanet 21.4.2006, 16:00
Цитата(Akella @  21.4.2006,  15:49 Найти цитируемый пост)
  даааааа, активность поразительная, не то что в разделе Delphi, наверное этот C# очень популярен   , неужели никто не ответит?

Активность нормальноя, ИМХО, никто не знает как получить ответ от формы в таком виде  smile 


Цитата(Akella @  21.4.2006,  15:49 Найти цитируемый пост)
fmAdd

Это только экземпляр формы, он в дизайнере не создается smile 

Цитата(Akella @  21.4.2006,  15:49 Найти цитируемый пост)
 Form fmAdd = new Form();

Здесь ты создаешь совершенно новый экземпляр формы, имеющий тип прародителя всех форм Form, который и должен быть пустым smile 

Надо создать класс 
Код

    public partial class AddForm : Form
    {
        public AddForm()
        {
          // накидать сюда контролов
          // или с помощью дизайнера и InitializeComponent();
        }
    }

А потом создавать экземпляр AddForm
Код

AddForm fmAdd = new AddForm();


Фроде усе.

P.S. Как получить ответ именно от метода Show или похожего, я не знаю smile  

Автор: _hunter 21.4.2006, 16:21
не понял. а в чем проблема?
вот описание:
Код

public DialogResult ShowDialog ()

т.е. результат он возвращает... 

Автор: Akella 21.4.2006, 16:37
забыл дописать, что у меня MSVS 2005


ivashkanet, не совсем понял 

Автор: _hunter 21.4.2006, 16:43
почему забыл? еще в первом посте написал...

ivashkanet хочет сказать что ты пишеш аналог form2 := TForm.Сreate(self); 

Автор: Exception 21.4.2006, 21:07
Мне интересно, ты зачем за С# взялся smile ? Без основ никуда, это не Delphi со своей активностью, простотой и отсутствием ООП. А версия студии в основах никакого значения не имеет. 

Автор: Akella 25.4.2006, 07:49
Exception, спасибо за помощь 

Автор: Exception 25.4.2006, 08:16
Я серьёзно. Если ты пишешь такой код, вряд ли у тебя не будут возникать подобные проблемы на каждом шагу. Поэтому, лучше изучить технологию более детально. Имхо.

Добавлено @ 08:18 
Тем более, ты до сих пор не написал, что именно у тебя не работает. Тебе ведь уже написали, как делать. 

Автор: Quadr0 25.4.2006, 09:05
...

Автор: Exception 25.4.2006, 09:37
Я что-то говорил про низкоуровневость? Наоборот, преимуществом её не считаю.
Я говорю не о возможности ООП, а о его использовании. Я очень давно не видел программиста Delphi, который использует ООП. Всё обычно ограничивается сгенерированными дизайнером окошками. Если это считать за ООП.. На С# гораздо больше процент грамотных программистов (возможно, из-за меньшей "лёгкости"). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)