Click here to Skip to main content
15,884,099 members
Home / Discussions / C#
   

C#

 
QuestionHow to read data from Staff ID Card using c# Pin
Member 1050484922-May-14 3:46
Member 1050484922-May-14 3:46 
AnswerRe: How to read data from Staff ID Card using c# Pin
Richard MacCutchan22-May-14 3:54
mveRichard MacCutchan22-May-14 3:54 
QuestionShare an event between two forms. Pin
jenya722-May-14 2:18
jenya722-May-14 2:18 
AnswerRe: Share an event between two forms. Pin
joost.versteegen22-May-14 3:36
joost.versteegen22-May-14 3:36 
GeneralRe: Share an event between two forms. Pin
jenya722-May-14 4:12
jenya722-May-14 4:12 
GeneralRe: Share an event between two forms. Pin
jenya722-May-14 4:15
jenya722-May-14 4:15 
GeneralRe: Share an event between two forms. Pin
jenya722-May-14 4:53
jenya722-May-14 4:53 
AnswerRe: Share an event between two forms. Pin
joost.versteegen22-May-14 4:40
joost.versteegen22-May-14 4:40 
Alternative with Observable pattern (just for the fun Wink | ;-) )

C#
public interface IObservable
{
  void AddObserver(IObserver observer);
  void NotifyObservers(object obj);
  void RemoveObserver(IObserver observer);
}

public interface IObserver
{
  void Update(object obj);
}

public partial class Form1 : Form, IObservable
{
  public string ItemText { get; private set; }

  private List<IObserver> _Observers = new List<IObserver>();

  public Form1()
  {
    InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
    listBox1.Items.Add("monkey");
    listBox1.Items.Add("nut");
    listBox1.Items.Add("car");

    for (int k = 0; k < 3; k++)
    {
      Form2 frm = new Form2();
      frm.Text = k.ToString();
      AddObserver(frm);
      frm.FormClosed += new FormClosedEventHandler(frm_FormClosed);
      frm.Show();
    }
  }

  private void frm_FormClosed(object sender, FormClosedEventArgs e)
  {
    RemoveObserver(sender as IObserver);
  }

  private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  {
    ItemText = listBox1.SelectedItem.ToString();
    NotifyObservers(this.listBox1);
  }

  public void AddObserver(IObserver observer)
  {
    _Observers.Add(observer);
  }

  public void NotifyObservers(object obj)
  {
    foreach (var observer in _Observers)
    {
      observer.Update(obj);
    }
  }

  public void RemoveObserver(IObserver observer)
  {
    _Observers.Remove(observer);
  }
}

public partial class Form2 : Form, IObserver
{
  public Form2()
  {
    InitializeComponent();
  }

  public void Update(object obj)
  {
    ListBox box = obj as ListBox;
    textBox1.Text = box.Text;
  }
}

GeneralRe: Share an event between two forms. Pin
jenya722-May-14 4:56
jenya722-May-14 4:56 
AnswerRe: Share an event between two forms. Pin
BobJanova22-May-14 5:02
BobJanova22-May-14 5:02 
GeneralRe: Share an event between two forms. Pin
jenya722-May-14 5:07
jenya722-May-14 5:07 
GeneralRe: Share an event between two forms. Pin
BobJanova22-May-14 5:47
BobJanova22-May-14 5:47 
GeneralRe: Share an event between two forms. Pin
jenya722-May-14 7:28
jenya722-May-14 7:28 
Questionc# Pin
Member 1083669622-May-14 1:18
Member 1083669622-May-14 1:18 
AnswerRe: c# Pin
Rob Philpott22-May-14 1:25
Rob Philpott22-May-14 1:25 
GeneralRe: c# Pin
Richard MacCutchan22-May-14 2:01
mveRichard MacCutchan22-May-14 2:01 
AnswerRe: c# Pin
Richard MacCutchan22-May-14 2:02
mveRichard MacCutchan22-May-14 2:02 
AnswerRe: c# Pin
Chris Quinn22-May-14 2:16
Chris Quinn22-May-14 2:16 
AnswerRe: c# Pin
ZurdoDev22-May-14 4:59
professionalZurdoDev22-May-14 4:59 
GeneralRe: c# Pin
Chris Quinn22-May-14 5:02
Chris Quinn22-May-14 5:02 
GeneralRe: c# Pin
ZurdoDev22-May-14 5:06
professionalZurdoDev22-May-14 5:06 
AnswerRe: c# Pin
Dave Kreskowiak22-May-14 4:19
mveDave Kreskowiak22-May-14 4:19 
GeneralRe: c# Pin
Shady George22-May-14 8:11
Shady George22-May-14 8:11 
AnswerRe: c# Pin
ZurdoDev22-May-14 5:00
professionalZurdoDev22-May-14 5:00 
AnswerRe: c# Pin
V.22-May-14 6:21
professionalV.22-May-14 6:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.