【KGJ10032】UltraWinGridの編集中のセル上で、MouseDown,MouseUp,Clickなどのマウスイベントが発生しないのはなぜ?

0 ユーザーが評価
この投稿には確認済みの回答があります。 0 返信 | 1 サポーター

トップ 10 投稿者 
男性
投稿 45
IG Employee
[IG] 山田 達也 投稿済み: 2009/10/5 19:35

【概要】
あるセルが編集モードにある場合、グリッドは編集用のウインドウをセルの上にオーバーレイします。このとき、セル上でマウスクリックを行っても、グリッド上のMosueDown, MouseUp, Clickなどのイベントは発生しません。
 
【該当するコンポーネント】
UltaWinGrid
 
【該当するバージョン】
全てのバージョン
 
【記事の種類】
FAQ
 
【詳細】
あるセルが編集モードにある場合、グリッドは編集用のウインドウをセルの上にオーバーレイ表示し、その中で編集セルの表現を行っています。このとき、セルに対するMouseDown, MouseUp, Click などのマウスクリックイベントは、グリッドからは直接検知できないので、これらのイベントは発生しない仕様となっています(これはMicrosoft社の標準グリッドコントロールと同等の動作です)。
 
この動作が当てはまるのは、MouseDown, MouseUp, MouseEnter, MouseLeave, MouseMove, Click, DoubleClickイベントです。
 
ClickCellイベントを使用すると、簡単にセルに対するマウスクリックをハンドリングすることができますが、もし上記のようなイベントをセルに対して検知したい場合は、グリッドの ControlAdded と ControlRemoved イベントを使用してエディター用のコントロールに対するマウスイベントを動的に作成・解除することができます。
 
(C#)
 
        private void ultraGrid1_ControlAdded(object sender, ControlEventArgs e)
        {
            e.Control.MouseDown += new MouseEventHandler(this.UltraGrid1_Editor_MouseDown);
            e.Control.MouseUp += new MouseEventHandler(this.UltraGrid1_Editor_MouseUp);
            e.Control.Click += new EventHandler(this.UltraGrid1_Editor_Click);
            e.Control.DoubleClick += new EventHandler(this.UltraGrid1_Editor_DoubleClick);
        }
 
        private void ultraGrid1_ControlRemoved(object sender, ControlEventArgs e)
        {
            e.Control.MouseDown -= new MouseEventHandler(this.UltraGrid1_Editor_MouseDown);
            e.Control.MouseUp -= new MouseEventHandler(this.UltraGrid1_Editor_MouseUp);
            e.Control.Click -= new EventHandler(this.UltraGrid1_Editor_Click);
            e.Control.DoubleClick -= new EventHandler(this.UltraGrid1_Editor_Click);
        }
 
(VB)
 
    Public Sub UltraGrid1_ControlAdded(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles UltraGrid1.ControlAdded
        AddHandler e.Control.MouseDown, AddressOf UltraGrid1_Editor_MouseDown
        AddHandler e.Control.MouseUp, AddressOf UltraGrid1_Editor_MouseUp
        AddHandler e.Control.Click, AddressOf UltraGrid1_Editor_Click
        AddHandler e.Control.DoubleClick, AddressOf UltraGrid1_Editor_DoubleClick
    End Sub
    Public Sub UltraGrid1_ControlRemoved(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles UltraGrid1.ControlRemoved
        RemoveHandler e.Control.MouseDown, AddressOf UltraGrid1_Editor_MouseDown
        RemoveHandler e.Control.MouseUp, AddressOf UltraGrid1_Editor_MouseUp
        RemoveHandler e.Control.Click, AddressOf UltraGrid1_Editor_Click
        RemoveHandler e.Control.DoubleClick, AddressOf UltraGrid1_Editor_DoubleClick
    End Sub

ページ 1 / 1 (1 項目) | RSS
Infragistics Japan
インフラジスティックス ジャパン