| 投稿時間: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にして加えたら、
 うまく処理できました。
 
 初心者だからこそ、質問の仕方には気をつけないとですよね。もっと勉強して
 精進しますので、今後ともよろしくお願いします。
 
 |