GrapeCity.Win.MultiRow.v80 アセンブリ > GrapeCity.Win.MultiRow 名前空間 > GcMultiRow クラス : EditingControlShowing イベント |
Public Event EditingControlShowing As EventHandler(Of EditingControlShowingEventArgs)
public event EventHandler<EditingControlShowingEventArgs> EditingControlShowing
イベント ハンドラが、このイベントに関連するデータを含む、EditingControlShowingEventArgs 型の引数を受け取りました。次の EditingControlShowingEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
CellStyle | 編集するセルのセルスタイルを取得または設定します。 |
Control | 選択されているセルの値を編集するためにユーザーに表示されるコントロールを取得します。 |
このイベントを処理することで、セルが編集モードに入るときに編集コントロールを独自に初期化できます。編集コントロールの表示特性をカスタマイズするには、EditingControlShowingEventArgs.CellStyleプロパティによって返されたオブジェクトのプロパティを設定します。その他の初期化を実行するには、EditingControlShowingEventArgs.Controlプロパティの値を特定のコントロール型にキャストして、メンバに直接アクセスします。たとえば、EditingControlShowingイベントを処理して、編集コントロールのイベントにイベントハンドラを関連付けることができます。
注意: |
---|
GcMultiRowコントロールは一度に1つの編集コントロールをホストし、次に編集するセル型が前と同じ場合はその編集コントロールを再利用します。したがって、編集コントロールにイベントハンドラを関連付けるときは、同じハンドラを複数回関連付けないように注意する必要があります。この問題を回避するには、イベントにハンドラを関連付ける前に、イベントからハンドラを削除します。こうすると、ハンドラがすでにイベントに関連付けられている場合はハンドラの重複が防止され、それ以外の場合は何も起こりません。 |
using System; using System.Windows.Forms; using System.Drawing; namespace GrapeCity.Win.MultiRow.SampleCode { class EditingControlShowingDemo : Form { GcMultiRow gcMultiRow = new GcMultiRow(); public EditingControlShowingDemo() { gcMultiRow.Dock = DockStyle.Fill; gcMultiRow.Template = Template.Default; gcMultiRow.RowCount = 5; gcMultiRow.EditingControlShowing += new EventHandler<EditingControlShowingEventArgs>(gcMultiRow_EditingControlShowing); this.Text = "EditingControlShowing Demo"; this.Controls.Add(gcMultiRow); } void gcMultiRow_EditingControlShowing(object sender, EditingControlShowingEventArgs e) { // Change editing control's back color. e.CellStyle.BackColor = Color.Red; TextBox textBox = e.Control as TextBox; if (textBox != null) { // Add TextChange event handler. textBox.TextChanged -= new EventHandler(textBox_TextChanged); textBox.TextChanged += new EventHandler(textBox_TextChanged); } } void textBox_TextChanged(object sender, EventArgs e) { Console.WriteLine("Editing control text changed."); } [STAThreadAttribute()] public static void Main() { Application.EnableVisualStyles(); Application.Run(new EditingControlShowingDemo()); } } }
Imports System Imports System.Windows.Forms Imports System.Drawing Imports GrapeCity.Win.MultiRow Class EditingControlShowingDemo Inherits Form Friend WithEvents gcMultiRow As New GcMultiRow() Public Sub New() gcMultiRow.Dock = DockStyle.Fill gcMultiRow.Template = Template.Default gcMultiRow.RowCount = 5 Me.Text = "EditingControlShowingDemo" Me.Controls.Add(gcMultiRow) End Sub Private Sub gcMultiRow_EditingControlShowing(ByVal sender As Object, ByVal e As EditingControlShowingEventArgs) Handles gcMultiRow.EditingControlShowing ' Change editing control's back color. e.CellStyle.BackColor = Color.Red Dim textBox As TextBox = TryCast(e.Control, TextBox) If Not textBox Is Nothing Then ' Add TextChange event handler. RemoveHandler textBox.TextChanged, AddressOf textBox_TextChanged AddHandler textBox.TextChanged, AddressOf textBox_TextChanged End If End Sub Private Sub textBox_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Console.WriteLine("Editing control text changed.") End Sub <STAThreadAttribute()> _ Public Shared Sub Main() Application.EnableVisualStyles() Application.Run(New EditingControlShowingDemo()) End Sub End Class