Clickイベントで使う値をそのClickで取得するには?


富士屋  2004-07-09 20:24:44  No: 114664

初心者で困っているのですが、
TDBGridで何らかのデータを表示している状態で
例えば、カレント行の値が"123"として、
他の行の"ABC"というデータが入っている行をクリックすると、
その"ABC"をラベルに表示しようと思って、

Private Sub TDBGrid1_Click()

    Label1.Caption = TDBGrid1.Columns(0).text

End Sub

上のような感じで出来るかと思ったのですが、
色々試してみると、どうやらクリックイベントはクリックと同時に起こるため、
表示したい行をクリックしても、
その前に選択されていた行の値を返してしまうようなのです。
なので、"ABC"ではなく、"123"とラベルに表示してしまいます。
そのあとで、"ABC"を選択状態にしているみたいです。

何か良い解決方法がありましたら、教えていただきたいと思っています。

(Windows2000 VB6 SP5)


いちゆ  2004-07-09 20:48:09  No: 114665

MouseUpイベントとかは無い?


富士屋  2004-07-09 20:57:08  No: 114666

MouseUpも試してみたんですけれど、
クリックと同じ結果になってしまって、ダメでした。


nanashi  2004-07-09 21:14:59  No: 114667

試してないけど、DoEventsを入れてみるとか。


koma  2004-07-09 22:19:03  No: 114668

オンラインヘルプでイベント一覧を探してみては?
適切なイベントが他にあるかも。


富士屋  2004-07-09 23:03:46  No: 114669

ヘルプでイベント一覧を探してみました。
一応、一覧であやしいのは全部試してはみたのですが、どれもだめでした。
DoEventはどのように使えばいいのですか?
使ったことがないので、調べてみたのですが、OSに処理を渡す?
ということでしたが…。
もしくは、クリックし終わった後に、処理を実行することが出来れば、
と思ったのですが、そのようなことって可能なのでしょうか?


ken  2004-07-10 00:01:52  No: 114670

ダブルクリックイベントってなかったでしたっけ?
そっちでカレント行をとるとか?


富士屋  2004-07-10 00:06:41  No: 114671

ダブルクリックだとできました!!
しかしながら、出来れば、タッチパネルに対応したいので、
それはさけたいのですが…。いかがなものでしょうか?


ぴろあき  2004-07-10 00:10:33  No: 114672

TextBoxとかはClickイベントで、既に値が入ってますね。
Private Sub Text1_Click()
    Debug.Print Text1.Text
End Sub

データベース系のコントロール扱った事ないんですが、
>Columns(0)
これって0列のデータって事ではないですよね?
だから、"123"と表示されているなんて事は。。。
外してたら、スルーでよろしく。


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

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






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