セル編集コントロールのイベントから呼び出し元の GcMultiRow コントロールにアクセスするには
MultiRowのすべてのセル編集コントロールはIEditingControlインタフェースを実装しているので、IEditingControl.GcMultiRowプロパティを通して呼び出し元のGcMultiRowコントロールにアクセスできます。
using GrapeCity.Win.MultiRow;
private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
GcMultiRow gcMultiRow = sender as GcMultiRow;
if (e.Control is TextBoxEditingControl)
{
e.Control.KeyPress -= new KeyPressEventHandler(Control_KeyPress);
e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress);
}
}
private void Control_KeyPress(object sender, KeyPressEventArgs e)
{
// セル編集コントロールのため、senderはGcMultiRowではなくTextBoxCell.EditTypeの
// コントロールになる
TextBoxEditingControl textBox = sender as TextBoxEditingControl;
// 呼び出し元のGcMultiRowコントロール
Console.WriteLine(textBox.GcMultiRow.Name);
}
