データグリッド内のカーソルの位置を知る方法は?


oityan  2005-01-10 04:09:18  No: 87710

テキストボックス内のカーソルの位置は、selectionstartで取得できますが、データグリッド内でカーソルの位置は、どうやって取得すればよいのでしょう。datagrid(行、列).selectionstartとやると実行時に例外が発生しました。よろしくお願いします。


たくみ  2005-01-11 00:43:11  No: 87711

>datagrid(行、列).selectionstartとやると実行時に例外が発生し・・
ってそんな乱暴な。^_^;
コントロールがちがえば別物、と思ったほうがいいですよ。

環境はVB6ですか?
だとして、「オブジェクトブラウザ」って正直みられてませんよね?
この機にみられたらよいと思います。
中には日本語での解説がないものもありますが、
データグリッド(MS製のと勝手に解釈してMSDATGRD.OCX)なら
ちゃんと日本語表示されますよ。

で、あとは調べてください、では「あんまり」なので回答を。
要は、Colプロパティが桁位置、Rowプロパティが行位置です。
あ、実際の数にマイナス1された値、つまりゼロから数えた値が
返りますので注意してくださいね。

ためしに、任意のコマンドボタンをつくって、そこに

Private Sub Command1_Click()
    'データグリッドのコントロール名をGridDatにした場合です
    MsgBox CStr(GridDat.col + 1) '現在の桁位置
    MsgBox CStr(GridDat.Row + 1) '現在の行位置
    MsgBox GridDat.text    '現在のカーソル位置のデータ内容(テキスト形式)
End Sub

こんな感じで書いてみると言っている意味がわかると思います。

で、便利なのがColプロパティに値の指定もできるんです。
だからいわゆるカレントとしたい項目を任意のカラムに移動して
そこの値をゲットする、ということもできます。

ちなみに、別の考え方でもデータ取得できます。
カレント桁を指定するのでなく直接、参照するわけですね。
その場合は
Dim I as Integer
I = 2  '3番目の項目の値を取得したい場合
GridDat.columns(I).value
こんな感じです。


oityan  2005-01-11 08:22:59  No: 87712

たくみさん
ありがとうございます。早速参考にしてやってみます。
又VB.NETでの開発でosはxpです。
明確にしてなくてすいません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加