20 Ekim 2009 Salı

DataGridView - 2 (Combobox SelectedIndexChanged)

Karşılaştığım diğer bir sorun, Combobox'ların SelectedIndexChanged event'ının olmaması veya ulaşamamak. İnternette şöyle bir öneri vardı ne kadar doğru bilemem ama ben uyguladım oldu:

private void dgProTaskTable_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
      try
     {
           ComboBox cb = e.Control as ComboBox;

           if (cb != null && this.dgProTaskTable.CurrentCell.OwningColumn.Name=="clOperationStatus")
          {
                cb.SelectedIndexChanged -= new EventHandler(cb_SelectedIndexChanged);
               cb.SelectedIndexChanged += new EventHandler(cb_SelectedIndexChanged);
          }
     }
     catch { }
}


DataGridView'in EditingControlShowing event handler'ı bize control bilgisini getiriyor. Böylelikle eğer comboxsa onun yeni tanımladığımız SelectedIndexChanged event'ına git diyebiliyoruz.

private void cb_SelectedIndexChanged(object sender, EventArgs e)
{
     try
    {
          ComboBox cb = sender as ComboBox;

          TaskInformationItem item = new TaskInformationItem();

          item.SetInactiveFields(cb.SelectedItem.ToString(), this.dgProTaskTable, this._inputInsuranceRequestInfo);
     }
     catch { }
}

Bu metodun içinde neler yaptığı önemli değil, önemli olan cb.SelectedItem olarak kullanabilmemiz :)

Hiç yorum yok:

Yorum Gönder