ホーム
ブログ
フォーラムとナレッジベース
フォーラム
»
NetAdvantage Windows Forms
»
グリッドとツリー
»
【KGJ10032】UltraWinGridの編集中のセル上で、MouseDown,MouseUp,Clickなどのマウスイベントが発生しないのはなぜ?
【KGJ10032】UltraWinGridの編集中のセル上で、MouseDown,MouseUp,Clickなどのマウスイベントが発生しないのはなぜ?
0 ユーザーが評価
この投稿には確認済みの回答があります。 0 返信 | 1 サポーター
投稿
45
返信
[IG] 山田 達也
投稿済み: 2009/10/5 19:35
0 ユーザーが評価
【概要】
あるセルが編集モードにある場合、グリッドは編集用のウインドウをセルの上にオーバーレイします。このとき、セル上でマウスクリックを行っても、グリッド上の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
以下に保存:
KB
,
UltraWinGrid
前へ
|
次へ
ページ 1 / 1 (1 項目) |
RSS
インフラジスティックス ジャパン