初心者で困っているのですが、
TDBGridで何らかのデータを表示している状態で
例えば、カレント行の値が"123"として、
他の行の"ABC"というデータが入っている行をクリックすると、
その"ABC"をラベルに表示しようと思って、
Private Sub TDBGrid1_Click()
Label1.Caption = TDBGrid1.Columns(0).text
End Sub
上のような感じで出来るかと思ったのですが、
色々試してみると、どうやらクリックイベントはクリックと同時に起こるため、
表示したい行をクリックしても、
その前に選択されていた行の値を返してしまうようなのです。
なので、"ABC"ではなく、"123"とラベルに表示してしまいます。
そのあとで、"ABC"を選択状態にしているみたいです。
何か良い解決方法がありましたら、教えていただきたいと思っています。
(Windows2000 VB6 SP5)
MouseUpイベントとかは無い?
編集 削除MouseUpも試してみたんですけれど、
クリックと同じ結果になってしまって、ダメでした。
試してないけど、DoEventsを入れてみるとか。
編集 削除オンラインヘルプでイベント一覧を探してみては?
適切なイベントが他にあるかも。
ヘルプでイベント一覧を探してみました。
一応、一覧であやしいのは全部試してはみたのですが、どれもだめでした。
DoEventはどのように使えばいいのですか?
使ったことがないので、調べてみたのですが、OSに処理を渡す?
ということでしたが…。
もしくは、クリックし終わった後に、処理を実行することが出来れば、
と思ったのですが、そのようなことって可能なのでしょうか?
ダブルクリックイベントってなかったでしたっけ?
そっちでカレント行をとるとか?
ダブルクリックだとできました!!
しかしながら、出来れば、タッチパネルに対応したいので、
それはさけたいのですが…。いかがなものでしょうか?
TextBoxとかはClickイベントで、既に値が入ってますね。
Private Sub Text1_Click()
Debug.Print Text1.Text
End Sub
データベース系のコントロール扱った事ないんですが、
>Columns(0)
これって0列のデータって事ではないですよね?
だから、"123"と表示されているなんて事は。。。
外してたら、スルーでよろしく。