バージョン

マウス処理

標準のマウス イベント(MouseDown、MouseMove、MouseUp、MouseEnter、MouseLeave など)に加えて、すべての PLF ベースのコントロールは、MouseEnterElement および MouseLeaveElement という 2 つの新しいイベントを提供しています。次のコードは、マウスがエレメントの上に来たとき、およびエレメントから離れたときに、各エレメントの型を出力ウィンドウに表示します。

Private Sub UltraGrid1_MouseEnterElement(ByVal sender As Object, _
  ByVal e As Infragistics.Win.UIElementEventArgs) Handles UltraGrid1.MouseEnterElement
        Debug.WriteLine("Enter Element: " + e.Element.GetType().ToString())
End Sub
Private Sub UltraGrid1_MouseLeaveElement(ByVal sender As Object, _
  ByVal e As Infragistics.Win.UIElementEventArgs) Handles UltraGrid1.MouseLeaveElement
        Debug.WriteLine("Leave Element: " + e.Element.GetType().ToString())
End Sub
using System.Diagnostics;
private void ultraGrid1_MouseEnterElement(object sender, Infragistics.Win.UIElementEventArgs e)
{
	Debug.WriteLine( "Enter Element: " + e.Element.GetType().ToString() );
}
private void ultraGrid1_MouseLeaveElement(object sender, Infragistics.Win.UIElementEventArgs e)
{
	Debug.WriteLine( "Leave Element: " + e.Element.GetType().ToString() );
}

ポイントからエレメントを取得してそのコンテキスト情報を見つけるためのメソッドもあります。

次のコードは、ユーザーがマウス ボタンを押すポイントのエレメントを取得し、そのコンテキスト情報を取得します(この例ではグリッドのセルです)。

Imports Infragistics.Win.UltraWinGrid
Private Sub UltraGrid1_MouseDown(ByVal sender As Object, ByVal e As _
  System.Windows.Forms.MouseEventArgs) Handles UltraGrid1.MouseDown
    Dim mainElement As Infragistics.Win.UIElement
    Dim element As Infragistics.Win.UIElement
    mainElement = Me.UltraGrid1.DisplayLayout.UIElement
    element = mainElement.ElementFromPoint(New Point(e.X, e.Y))
    If (Not element Is Nothing) Then
        Dim cell As UltraGridCell
        cell = element.GetContext(GetType(UltraGridCell))
        If (Not cell Is Nothing) Then
            Debug.WriteLine("Cell text: " + cell.Text)
        End If
        Debug.WriteLine("Mouse down on an " + element.GetType().ToString())
        Debug.Indent()
' 親エレメント チェーンをたどり、各親エレメントについて
' 1 行ずつ情報を出力します。
        While Not element.Parent Is Nothing
            element = element.Parent
            Debug.WriteLine("is a child of an " + element.GetType().ToString())
            Debug.Indent()
        End While
' インデント レベルをリセットします。
        Debug.IndentLevel = 0
    End If
End Sub
using System.Diagnostics;
using Infragistics.Win.UltraWinGrid;
private void ultraGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
	Infragistics.Win.UIElement mainElement;
	Infragistics.Win.UIElement element;
	mainElement = this.ultraGrid1.DisplayLayout.UIElement;
	element = mainElement.ElementFromPoint( new Point( e.X, e.Y ) );
	if ( element != null )
	{
		UltraGridCell cell = element.GetContext( typeof(UltraGridCell) ) as UltraGridCell;
		if ( cell != null )
			Debug.WriteLine( "Cell text: " + cell.Text );
		Debug.WriteLine( "Mouse down on an " + element.GetType().ToString() );
		Debug.Indent();
		// 親エレメントチェーンをたどり、各親エレメントについて
		// 1 行ずつ情報を出力します。
		while (element.Parent != null )
		{
			element = element.Parent;
			Debug.WriteLine("is a child of an " + element.GetType().ToString());
			Debug.Indent();
		}
		// インデント レベルをリセットします。
		Debug.IndentLevel = 0;
	}
}