VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/03/05(Fri) 22:34
投稿者しゅう
URL
タイトルRe: MSHFlexGridのdblclickイベント を感知する

nobuさん、花ちゃんありがとうございました。

> うまく表示されない、実際のコードをコピーペで投稿しないと解決を
> 遅らせるだけですよ。
> nobu さんのコードで問題ないはずですよ。
> 何か余計な処理していませんか?
ありがとうございます。今後は、そのようにします。アドバイスありがとうございました。
ちなみに、実際のコードは、

Private Sub fg伝票_dblClick()
With fg伝票
If fg伝票.Rows = 1 Then
a = MsgBox("編集できるデータがありません", , "データなし")
Exit Sub
End If
If .TextMatrix(.Row, 1) = 1 Then
Form伝票.opt支出.Value = True
Form伝票.txt金額.Text = Format$(.TextMatrix(.Row, 5), "#############")
Form伝票.cmb科目.Text = .TextMatrix(.Row, 2)
Form伝票.cmb口座.Text = .TextMatrix(.Row, 3)
Form伝票.txt相手.Text = .TextMatrix(.Row, 6)
Form伝票.txt内容.Text = .TextMatrix(.Row, 7)
End If

If .TextMatrix(.Row, 1) = 2 Then
Form伝票.opt収入.Value = True
Form伝票.txt金額.Text = Format$(.TextMatrix(.Row, 4), "#############")
Form伝票.cmb科目.Text = .TextMatrix(.Row, 2)
Form伝票.cmb口座.Text = .TextMatrix(.Row, 3)
Form伝票.txt相手.Text = .TextMatrix(.Row, 6)
Form伝票.txt内容.Text = .TextMatrix(.Row, 7)
End If

If .TextMatrix(.Row, 1) = 3 Then
Form伝票.opt振替.Value = True
Form伝票.txt金額.Text = Format$(.TextMatrix(.Row, 4), "#############")
Form伝票.cmb科目.Text = .TextMatrix(.Row, 2)
Form伝票.cmb口座.Text = .TextMatrix(.Row, 3)
Form伝票.txt相手.Text = .TextMatrix(.Row, 6)
Form伝票.txt内容.Text = .TextMatrix(.Row, 7)
End If

Form伝票.Show vbModal
End With
End Sub
・・・このようにしてました。
この際、txt相手にだけ、表示がされませんでした。前にも書きましたが、clickイベントや、コマンド
ボタンclickでは、表示されました。


> MSFlexGrid1_Click イベントでなにか処理していませんか?
> Click イベント が発生してからダブルクリックイベントが発生することに
> 注意して下さい。
>
> 下記の部分を追加して見て下さい。
>
> Option Explicit
> Private Declare Function GetDoubleClickTime Lib "user32" () As Long
> Private Declare Function timeGetTime Lib "winmm.dll" () As Long
> Private Sub MSHFlexGrid1_Click()
>     'ダブルクリックを感知する
>     Dim st As Long
>     'マウスのダブルクリックの間隔を考慮(0.18〜0.9)
>     st = timeGetTime + GetDoubleClickTime
>     'APIを使用しないなら0.18〜0.9秒の範囲で待機して下さい。
>     Do While timeGetTime < st
>         'timeGetTimeがリセットされた場合
>         If st - timeGetTime > 2000 Then st = 0
>         DoEvents
>     Loop
>
>
>     '以下に MSHFlexGrid1_Click イベントの処理
>
>
>
> End Sub

上記コードでPrivate Sub MSHFlexGrid1_Click()をdblClickにして加えたら、
うまく処理できました。

初心者だからこそ、質問の仕方には気をつけないとですよね。もっと勉強して
精進しますので、今後ともよろしくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -