Приложения Windows Forms. Некоторые методы формы

   
На этом шаге мы рассмотрим некоторые свойства формы.

   
Форма имеет большое количество методов. Рассмотрим только некоторые из методов формы.

  • Close () - закрывает форму.   
    Если закрывается главная форма, приложение закрывается. Ресурсы, занятые формой, освобождаются.
  • Hide () - форма становится невидимой.
  • Show () - выводит форму на экран.
  • ShowDialog () - показывает форму в модальном режиме.   
    Если форма показана в модальном режиме, то приложение не может выполняться, пока форма не будет закрыта.
    Чтобы закрыть форму, открытую в модальном режиме, надо назначить свойству DialogResult кнопки, которая должна закрыть форму (например, ОК), и проверить это свойство на
    совпадение его значения с соответствующим значением такого же свойства кнопки. Дело в том, что когда метод ShowDialog() выполнится, то он возвратит именно это заданное значение
    свойства в свойство формы с тем же наименованием DialogResult. Это и станет сигналом того, форма была открыта в модальном режиме и ее можно закрыть.

       
    Пример вызова форм показан на рисунке 1.


    Рис.1. Вызов форм

       
    Как вызывать из главной формы другие и как возвращаться в главну видно из текста примера, который показывает работу приложения с 3-мя формами: Forml, Form2, Form3. Из главной (стартовой)
    Forml вызываются остальные, причем Form2 - в модальном режиме, a Form3 в обычном (немодальном). Если Form3 можно закрывать, нажимая на кнопку
    Вызов Forml или на кнопку закрытия окна, и при этом все проходит успешно, то для Form2 это не имеет места: пока вы "правильно" не закроете эту форму, нажав на кнопку
    Вызов Forml, форма не закроется.

       
    Отметим: чтобы формы были видны одна из другой, надо в h-файл для главной формы перед командой using namespace поместить следующие директивы препроцессора

    #include "Form2.h"
    #include "Form3.h"
    

       
    Файл Form1.h:

    private: System::Void button1_Click(System::Object^  sender, 
        System::EventArgs^  e) {
    	 //открытие Form2
    	 System::Windows::Forms::DialogResult dr; 
    	 Form2^ newDlg = gcnew Form2(); 
    m:  
    	 dr = newDlg->ShowDialog();
    	 // Вызывается Form2 в модальном режиме.  
    	 // В dr запоминается значение DialogResult.   
    	 // Когда Form2  закроется, то значение ее свойства DialogResult 
    	 // будет сравниваться с dr (там перед закрытием формы мы 
    	 // внесем значение ОК в DialogResult)
    	 if( dr == System::Windows::Forms::DialogResult::OK )
    		 return; 
    	 else
    	 {
    		 MessageBox::Show ("Ошибка закрытия Form2"); 
    		 goto m;
    	 }
     }
    private: System::Void button2_Click(System::Object^  sender, 
                 System::EventArgs^  e) {
    	 //Вызов Form3
    	 Form3^ f3 = gcnew Form3();
    	 f3->Show();
     }
    private: System::Void button3_Click(System::Object^  sender, 
                System::EventArgs^  e) {
    	 this->Close();
     }
    

       
    Файл Form2.h:

    private: System::Void button1_Click(System::Object^  sender, 
               System::EventArgs^  e) {
    	 this->DialogResult= System::Windows::Forms::DialogResult::OK;
    	 this->Close();  //закрытие Form2
     }
    

       
    Файл Form3.h:

    private: System::Void button1_Click(System::Object^  sender, 
                System::EventArgs^  e) {
    	 this->Close();
     }
    

    Архив проекта можно взять здесь.

  • Dispose () - форма разрушается и память, занятая ею, освобождается.
  • Focus () - делает форму активной: свойства Visible и Enabled принимают значение true (форма становится видимой и доступной).

   
На следующем шаге мы рассмотрим рисование графиков в форме.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий