テキストボックス内のカーソルの位置は、selectionstartで取得できますが、データグリッド内でカーソルの位置は、どうやって取得すればよいのでしょう。datagrid(行、列).selectionstartとやると実行時に例外が発生しました。よろしくお願いします。
>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
こんな感じです。
たくみさん
ありがとうございます。早速参考にしてやってみます。
又VB.NETでの開発でosはxpです。
明確にしてなくてすいません。
ツイート | ![]() |