, jadi iseng2x buat program ini


Sebagai alumni programer VB 6
untuk membuat program diatas memang sangat gampang tapi beda dengan C#, akhirnya solusi yang sy coba menggunakan interface Interface INavigator
- Code: Select all
namespace Navigasi
{
public interface INavigator
{
void MovePrev(ref string data);
void MoveNext(ref string data);
}
}
Form 1
- Code: Select all
public partial class Form1 : Form, INavigator
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i < 11; i++)
listBox1.Items.Add("Item #" + i);
}
}
Untuk Form 1 saya mengimplementasikan interface INavigator, untuk kode implementasinya sbb :
- Code: Select all
public void MovePrev(ref string data)
{
btnPrev_Click(new object(), new EventArgs());
data = listBox1.SelectedItem.ToString();
}
public void MoveNext(ref string data)
{
btnNext_Click(new object(), new EventArgs());
data = listBox1.SelectedItem.ToString();
}
Kode diatas hanya mengakses event Click btnPrev dan btnNext
- Code: Select all
private void btnNext_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex < listBox1.Items.Count - 1) listBox1.SelectedIndex++;
}
private void btnPrev_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex > 0) listBox1.SelectedIndex--;
}
Sisa kode Form 1
- Code: Select all
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = listBox1.SelectedItem.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Navigator = this;
frm.ShowDialog();
}
Untuk kode Form 2, saya tambahkan sebuah property bertipe INavigator
- Code: Select all
private INavigator _navigator;
public INavigator Navigator
{
set { _navigator = value; }
}
Nilai property Navigator diset dari Form1 pada saat memanggil Form 2
- Code: Select all
// cuplikan kode form 1
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Navigator = this; // set property Navigator
frm.ShowDialog();
}
Terakhir dari form 2 memanggil method MovePrev dan MoveNext interface INavigator
- Code: Select all
private void btnNext_Click(object sender, EventArgs e)
{
string data = string.Empty;
if (this._navigator != null)
this._navigator.MoveNext(ref data);
textBox1.Text = data;
}
private void btnPrev_Click(object sender, EventArgs e)
{
string data = string.Empty;
if (this._navigator != null)
this._navigator.MovePrev(ref data);
textBox1.Text = data;
}
Sy rasa solusi ini kurang kren
dan berbelit2x, mungkin ada solusi yang lebih baik ? 
Download kode lengkap : http://www.4shared.com/file/i-W-WhTU/Navigasi.html


