Memberlakukan Pencarian Data (Search Box) pada parent form untuk form children

 on Sunday, February 14, 2016  

Contoh kasus seperti gambar di atas. dimana form parent (MDI FORM) terdapat Search Box yang akan di fungsikan untuk mencari data Nama yang terdapat di Child Form sedangkan form Parent Dana Anak di buat terpisah. Bagaimana caranya? #Pinjam gambarnya Om Aray :D

Saya Jawab menggunakan Interface. ya betul!! cara yang paling mudah adalah menggunakan interface. tapi bagaimana caranya? mari kita buat.

Pertama yang harus dibuat adalah Interface-nya. yang nantinya akan bertugas untuk menghubungkan antar parent form ke child form. cobalah buat initerface berikut :


  public interface IContohInterface  
   {  
     void Edit();  
     void Search(string textToSearch);  
     void Save();  
     void Delete();  
   }  

semisal form childrennya ada 3 biji.
1. frmChild1
2. frmChild2
3. frmChild3. ketiga form tersebut harus di inherit dari interface IContohInterface kita ambil contoh code dari frmChild1, dan setelah IContohInterface di implement akan diperoleh code sebagaimana berikut :

 public partial class frmChild1 : Form, IContohInterface  
   {  
     public frmChild1()  
     {  
       InitializeComponent();  
     }  
     private void frmChild1_Load(object sender, EventArgs e)  
     {  
       dataGridView1.DataSource = clsChild1Item.GetAll();  
     }  
     public void Edit()  
     {  
       throw new NotImplementedException();  
     }  
     public void Search(string textToSearch)  
     {  
       dataGridView1.DataSource = clsChild1Item.GetAll().Where(t => t.Name.Contains(textToSearch)).ToList();  
     }  
     public void Save()  
     {  
       throw new NotImplementedException();  
     }  
     public void Delete()  
     {  
       throw new NotImplementedException();  
     }  
   }  

Buatlah frmChild2 dan frmChild3 sebagaimana kode di atas. agar tiap form child di kenali oleh form parentnya.

Agar terhubung ke parent form, maka form frmChild1 tersebut di panggil dari parent form dan dicasting menjadi IContohInterface

  IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  

code diatas terdapat ActiveMdiChild yang adalah form yang aktif yang didalamnya terdapat form child (frmChild1). Nah setelah variable interface "icontoh" sudah dipastikan tidak null. disitulah tempat exekusi fungsi search.

 IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  
 if (icontoh != null) icontoh.Search(textBoxSearch.Text);  

control textBoxSearch.Text ini terdapat di parent form, yang value nya akan di tangkap oleh form child yang sudah di implement.

ini versi full code pada parent formnya.

 public partial class frmParent : Form  
   {  
     public frmParent()  
     {  
       InitializeComponent();  
     }  
     private void frmParent_Load(object sender, EventArgs e)  
     {  
       clsChild1Item.Build();  
     }  
     private void buttonLoadC1_Click(object sender, EventArgs e)  
     {  
       frmChild1 f = new frmChild1();  
       f.MdiParent = this;  
       f.Dock = DockStyle.Fill;  
       f.Show();  
     }  
     private void btnEdit_Click(object sender, EventArgs e)  
     {  
       IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  
       if (icontoh != null) icontoh.Edit();  
     }  
     private void btnSearch_Click(object sender, EventArgs e)  
     {  
       IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  
       if (icontoh != null) icontoh.Search(textBoxSearch.Text);  
     }  
     private void buttonSave_Click(object sender, EventArgs e)  
     {  
       IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  
       if (icontoh != null) icontoh.Save();  
     }  
     private void btnDelete_Click(object sender, EventArgs e)  
     {  
       IContohInterface icontoh = (IContohInterface)this.ActiveMdiChild;  
       if (icontoh != null) icontoh.Delete();  
     }  
   }  

Maka hasil akhir dari tulisan ini seperti gambar berikut ini.

Seperti biasa, Dalam tulisan ini saya sertakan juga contoh agar para newbie bisa langsung download disini dan mempelajari dengan seksama. anda bisa bertanya dengan meninggalkan komentar dibawah. dan ingat ketika anda sudah bisa. tularkan ke temen2 yang belom bisa. selamat mencoba!!!..

Contoh didalam zip ini dijalankan dengan Visual Studio 2010, Dotnet Framework 4.0, Window Application (windows 10 pro)

Salam,
Indahnya berbagi
Memberlakukan Pencarian Data (Search Box) pada parent form untuk form children 4.5 5 .NET-1235 Sunday, February 14, 2016 Contoh kasus seperti gambar di atas. dimana form parent (MDI FORM) terdapat Search Box yang akan di fungsikan untuk mencari data Nama yan...


1 comment:

  1. Belajar membuat aplikasi datase dengan C# dan Mysql(menggunakan Procedure dan Triger). pengennya melakukan pencarian data pada setiap form Childernya di lakukan pada parent formnya biar lebih simple. hehehehe..... tapi gak bisa-bisa. Bersyukur dapat wejangan dari Bob Hasan tentang interface. Makasih om

    ane share hasil belajarnya. http://www.4shared.com/rar/T-FvaMGfba/appmarking.html

    ReplyDelete

Copyright © .Net-1235. All Rights Reserved.