PowerTools MultiRow for Windows Forms 8.0J
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
参照

GcMultiRow クラス
GcMultiRow メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.