DoboWiki
Top
> .NETプログラミング研究/8 をテンプレートにして作成
.NETプログラミング研究/8 をテンプレートにして作成
開始行:
#title(8)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第8号 [#mac4f7c5]
**.NET Tips [#z4e9152f]
今回も前回に引き続き、DataGridコントロール(System.Windows...
***DataGridの指定された座標位置の情報を取得する [#h876ff39]
#column(注意){{
この記事の最新版は「[[DataGridの指定された座標位置の情報...
}}
DataGridクラスのHitTestメソッドにより、指定された座標位置...
次の例ではDataGrid1(DataGridオブジェクト)上でマウスボタン...
#code(vbnet){{
'ここではMouseDownでクリックされたとする
Private Sub DataGrid1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles DataGrid1.MouseDown
Dim grid As DataGrid = CType(sender, DataGrid)
'指定された(クリックされた)座標位置の情報を取得する
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = grid.HitTest(e.X, e.Y)
'クリックされた場所の情報を取得
Select Case hti.Type
Case System.Windows.Forms.DataGrid.HitTestType.None
Console.WriteLine("バックグランドがクリックさ...
Case System.Windows.Forms.DataGrid.HitTestType.Cell
Console.WriteLine("行{0}列{1}のセルがクリック...
hti.Row, hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列ヘッダ'{0}'がクリックさ...
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行ヘッダ'{0}'がクリックさ...
hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列'{0}'の境界線がクリック...
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行'{0}'の境界線がクリック...
hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.Ca...
Console.WriteLine("キャプションがクリックされ...
Case System.Windows.Forms.DataGrid.HitTestType.Pa...
Console.WriteLine("親行セクションがクリックさ...
End Select
End Sub
}}
#code(csharp){{
private void DataGrid1_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
DataGrid grid = (DataGrid) sender;
//指定された(クリックされた)座標位置の情報を取得する
System.Windows.Forms.DataGrid.HitTestInfo hti;
hti = grid.HitTest(e.X, e.Y);
//クリックされた場所の情報を取得
switch (hti.Type)
{
case System.Windows.Forms.DataGrid.HitTestType.No...
Console.WriteLine("バックグランドがクリックさ...
break;
case System.Windows.Forms.DataGrid.HitTestType.Ce...
Console.WriteLine("行{0}列{1}のセルがクリック...
hti.Row, hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列ヘッダ'{0}'がクリックさ...
hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行ヘッダ'{0}'がクリックさ...
hti.Row);
break;
case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列'{0}'の境界線がクリック...
hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行'{0}'の境界線がクリック...
hti.Row);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ca...
Console.WriteLine("キャプションがクリックされ...
break;
case System.Windows.Forms.DataGrid.HitTestType.Pa...
Console.WriteLine("親行セクションがクリックさ...
break;
}
}
}}
次にスクリーン座標を使った例として、現在のマウスポインタ...
#code(vbnet){{
'マウスポインタのスクリーン座標をクライアント座標に変換
Dim p As Point = DataGrid1.PointToClient(Cursor.Position)
'座標位置の情報を取得
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = DataGrid1.HitTest(p)
'結果を表示
Console.WriteLine(hti.ToString())
}}
#code(csharp){{
private void DataGrid1_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
//マウスポインタのスクリーン座標をクライアント座標に...
Point p = DataGrid1.PointToClient(Cursor.Position);
//座標位置の情報を取得
System.Windows.Forms.DataGrid.HitTestInfo hti;
hti = DataGrid1.HitTest(p);
//結果を表示
Console.WriteLine(hti.ToString());
}
}}
***DataGridの行数を取得する [#u7600cc4]
#column(注意){{
この記事の最新版は「[[DataGridの行数を取得する>https://do...
}}
例えばDataGridコントロールのDataSourceプロパティにDataTab...
#code(vbnet){{
'DataTableの行数の取得
Dim dt As DataTable = CType(DataGrid1.DataSource, DataTab...
Console.WriteLine(dt.Rows.Count)
}}
#code(csharp){{
//DataTableの行数の取得
DataTable dt = (DataTable) DataGrid1.DataSource;
Console.WriteLine(dt.Rows.Count);
}}
しかしこれは、行のフィルタ処理がされているときなどでは、D...
#code(vbnet){{
'DataGridの行数の取得
Console.WriteLine( _
DataGrid1.BindingContext(DataGrid1.DataSource, _
DataGrid1.DataMember).Count _
)
}}
#code(csharp){{
//DataGridの行数の取得
Console.WriteLine(
DataGrid1.BindingContext[DataGrid1.DataSource,
DataGrid1.DataMember].Count
);
}}
**コメント [#k1351e86]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-05-19 (月) 06:00:00,DOB...
終了行:
#title(8)
#navi(.NETプログラミング研究)
#contents
*.NETプログラミング研究 第8号 [#mac4f7c5]
**.NET Tips [#z4e9152f]
今回も前回に引き続き、DataGridコントロール(System.Windows...
***DataGridの指定された座標位置の情報を取得する [#h876ff39]
#column(注意){{
この記事の最新版は「[[DataGridの指定された座標位置の情報...
}}
DataGridクラスのHitTestメソッドにより、指定された座標位置...
次の例ではDataGrid1(DataGridオブジェクト)上でマウスボタン...
#code(vbnet){{
'ここではMouseDownでクリックされたとする
Private Sub DataGrid1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles DataGrid1.MouseDown
Dim grid As DataGrid = CType(sender, DataGrid)
'指定された(クリックされた)座標位置の情報を取得する
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = grid.HitTest(e.X, e.Y)
'クリックされた場所の情報を取得
Select Case hti.Type
Case System.Windows.Forms.DataGrid.HitTestType.None
Console.WriteLine("バックグランドがクリックさ...
Case System.Windows.Forms.DataGrid.HitTestType.Cell
Console.WriteLine("行{0}列{1}のセルがクリック...
hti.Row, hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列ヘッダ'{0}'がクリックさ...
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行ヘッダ'{0}'がクリックさ...
hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列'{0}'の境界線がクリック...
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行'{0}'の境界線がクリック...
hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.Ca...
Console.WriteLine("キャプションがクリックされ...
Case System.Windows.Forms.DataGrid.HitTestType.Pa...
Console.WriteLine("親行セクションがクリックさ...
End Select
End Sub
}}
#code(csharp){{
private void DataGrid1_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
DataGrid grid = (DataGrid) sender;
//指定された(クリックされた)座標位置の情報を取得する
System.Windows.Forms.DataGrid.HitTestInfo hti;
hti = grid.HitTest(e.X, e.Y);
//クリックされた場所の情報を取得
switch (hti.Type)
{
case System.Windows.Forms.DataGrid.HitTestType.No...
Console.WriteLine("バックグランドがクリックさ...
break;
case System.Windows.Forms.DataGrid.HitTestType.Ce...
Console.WriteLine("行{0}列{1}のセルがクリック...
hti.Row, hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列ヘッダ'{0}'がクリックさ...
hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行ヘッダ'{0}'がクリックさ...
hti.Row);
break;
case System.Windows.Forms.DataGrid.HitTestType.Co...
Console.WriteLine("列'{0}'の境界線がクリック...
hti.Column);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ro...
Console.WriteLine("行'{0}'の境界線がクリック...
hti.Row);
break;
case System.Windows.Forms.DataGrid.HitTestType.Ca...
Console.WriteLine("キャプションがクリックされ...
break;
case System.Windows.Forms.DataGrid.HitTestType.Pa...
Console.WriteLine("親行セクションがクリックさ...
break;
}
}
}}
次にスクリーン座標を使った例として、現在のマウスポインタ...
#code(vbnet){{
'マウスポインタのスクリーン座標をクライアント座標に変換
Dim p As Point = DataGrid1.PointToClient(Cursor.Position)
'座標位置の情報を取得
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = DataGrid1.HitTest(p)
'結果を表示
Console.WriteLine(hti.ToString())
}}
#code(csharp){{
private void DataGrid1_MouseDown(object sender,
System.Windows.Forms.MouseEventArgs e)
{
//マウスポインタのスクリーン座標をクライアント座標に...
Point p = DataGrid1.PointToClient(Cursor.Position);
//座標位置の情報を取得
System.Windows.Forms.DataGrid.HitTestInfo hti;
hti = DataGrid1.HitTest(p);
//結果を表示
Console.WriteLine(hti.ToString());
}
}}
***DataGridの行数を取得する [#u7600cc4]
#column(注意){{
この記事の最新版は「[[DataGridの行数を取得する>https://do...
}}
例えばDataGridコントロールのDataSourceプロパティにDataTab...
#code(vbnet){{
'DataTableの行数の取得
Dim dt As DataTable = CType(DataGrid1.DataSource, DataTab...
Console.WriteLine(dt.Rows.Count)
}}
#code(csharp){{
//DataTableの行数の取得
DataTable dt = (DataTable) DataGrid1.DataSource;
Console.WriteLine(dt.Rows.Count);
}}
しかしこれは、行のフィルタ処理がされているときなどでは、D...
#code(vbnet){{
'DataGridの行数の取得
Console.WriteLine( _
DataGrid1.BindingContext(DataGrid1.DataSource, _
DataGrid1.DataMember).Count _
)
}}
#code(csharp){{
//DataGridの行数の取得
Console.WriteLine(
DataGrid1.BindingContext[DataGrid1.DataSource,
DataGrid1.DataMember].Count
);
}}
**コメント [#k1351e86]
#comment
//これより下は編集しないでください
#pageinfo([[:Category/.NET]],2003-05-19 (月) 06:00:00,DOB...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]