25 Aralık 2017 Pazartesi

Winforms Form Sınıfı

Giriş
Şu satırı dahil ederiz.
using System.Windows.Forms;
Constructor - default
Şöyle yaparız
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class Mainform : Form
  {
    public Mainform()
    {
      InitializeComponent();
    }
    ...
  }
}
Constructor - Another Form
Şöyle yaparız
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class About : Form
  {
    private Mainform mymainform; // Holds main form instance

    // Contructor is updated to take the instance of Main Form
    public About(Mainform mainform)
    {
      InitializeComponent();
      mymainform = mainform;
    }
    ...
  }
}
Activated Event'i
Form etkinleşince yani focus gelince tetiklenir. Şöyle yaparız.
this.Activated += Form_Activated;
Handler şöyledir.
void Form_Activated(object sender, System.EventArgs e)
{
  ...
}
ActiveControl Alanı
Focus alan bileşen şöyle iptal edilir.
this.ActiveControl = null;
BackgroundImage Alanı
Şöyle yaparız.
this.BackgroundImage = Properties.Resources.myimage;
Controls Alanı 
ControlCollection tipindendir.

Close metodu
UI veya başka bir thread içinde kapatmak için şöyle yaparız.
public void ThreadSafeClose()
{
    if (this.InvokeRequired)
    {
        this.Invoke(new Action(Close));  /// or BeginInvoke...
    }
    else
    {
        Close();
    }
}
Closed Event'i
Şöyle yaparız.
childForm.Closed += (s, ev) => Application.Exit();
childForm.FormClosed += (s, ev) => Application.Exit();
FormBorderStyle Alanı
Şöyle yaparız.
this.FormBorderStyle = FormBorderStyle.None;
FormClosed Event'i
Şöyle yaparız.
//Inside main Form.  Click button to open new form
private void button1_Click(object sender, EventArgs e)
{
  Form2 f2 = new Form2();
  f2.FormClosed += F2_FormClosed;
  f2.Show();
}

private void F2_FormClosed(object sender, FormClosedEventArgs e)
{
  MessageBox.Show("Form was closed");
}
FormClosing Event'i
Bu event şöyle tetiklenir.
///Raises the FormClosing event for this form when Application.Exit is called.
/// Returns e.Cancel returned by the event handler.</para>
/// </devdoc>
internal bool RaiseFormClosingOnAppExit() {
  FormClosingEventArgs e = new FormClosingEventArgs(
    CloseReason.ApplicationExitCall, false);
  OnFormClosing(e);
  return e.Cancel;
}
Örnek
Şöyle yaparız.
this.FormClosing +=  new FormClosingEventHandler(FormClosing);
Handler içinde şöyle yaparız.
void FormClosing(object sender, FormClosingEventArgs e)
{
  //stops form from closing
  e.Cancel = true;
  ...
}
Örnek
Şöyle yaparız.
protected override void OnFormClosing(FormClosingEventArgs e) {
  if (e.CloseReason == CloseReason.UserClosing &&
      this.DialogResult != DialogResult.Cancel) {
    if (!base.Validate(true))
      e.Cancel = true;
  }
  base.OnFormClosing(e);
}
Hide metodu
Şöyle yaparız.
this.Hide();
KeyPreview Alanı
Şöyle yaparız.
//in the parent form
var childForm = new Form1();
childForm.KeyPreview = true;
childForm.Show();
MdiParent Alanı
MDI formlarda kullanılır. Alt formu açmak için şöyle yaparız.
//in the parent form
var childForm = new Form1();
childForm.MdiParent = parentForm;
...
childForm.Show();
Name Alanı
Tasarım sırasında verilen isimdir. Şöyle yaparız.
for (int i = Application.OpenForms.Count - 1; i >= 0; i--)
{
  if (Application.OpenForms[i].Name != "Form1")
  {
    Application.OpenForms[i].Close();
  }
}
Parent Alanı
Şöyle yaparız.
Form2 fr=new Form2();
fr.Parent=this;
fr.show();
Size Alanı
Şöyle atanır.
private void Form1_Load(object sender, EventArgs e) {
  Size = new Size(Screen.PrimaryScreen.WorkingArea.Right / 2, 
                  Screen.PrimaryScreen.WorkingArea.Bottom / 2);
}
ShowDialog metodu
Form modal olarak şöyle gösterilir.
FormLogin login= new FormLogin();
if (login.ShowDialog() == true)
{...}
Modal dialog sonucu DialogResult alanı ile döner.
if (LoginOK)
{
     this.DialogResult = true;
}
else
{
     this.DialogResult = false;
}
this.Close();
Parent vermek istersek şöyle yaparız.
login.StartPosition = FormStartPosition.CenterParent;
login.ShowDialog(this);
ShowForm metodu
Form modal olmadan gösterilir.
Form1 f1= new Form1();
f1.Show();
Parent vermek istersek şöyle yaparız.
Form2 fr=new Form2();
fr.show(this);
ShowHelp metodu
Metodu Forms sınıfına ait değil ancak ilgili olduğu için buraya ekledim. Şöyle yaparız.
string sHTMLHelpFileName = "CHM-example.chm";
System.Windows.Forms.Help.ShowHelp(this, sHTMLHelpFileName);
Shown Event'i
Örnek ver

StartPosition Alanı
Şöyle yaparız.
form.StartPosition = FormStartPosition.CenterParent;
State Alanı
Şöyle yaparız.
form.State == FormWindowState.Minimized) {...}
Text Alanı
Şöyle yaparız.
string name = ...;
Form form = ...;
if (frm.Text == name) {...}
TopMost Alanı
Şöyle yaparız
this.TopMost = true;

Hiç yorum yok:

Yorum Gönder