
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
終了ボタンのクリックイベントよりも、
先にマウスダウンイベントを発生させれば
テキストのロストフォーカスよりも優先されるようです。
マウスのダウンアップイベントでフラグ立てて制御すれば、
擬似的に回避は可能かと思います。
Dim bcancel As Boolean
Private Sub Command1_Click()
Text1.Text = "終了処理"
End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
bcancel = True
Call Command1_Click
End Sub
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
bcancel = False
End Sub
Private Sub Text1_LostFocus()
If bcancel = False Then
Text1.Text = "エラー処理"
End If
End Sub
No.2
- 回答日時:
データのチェックを Validateイベントに記述してみてはいかがでしょう
終了ボタンのCausesValidationプロパティをFalseに設定すれば終了ボタンはいつでもクリックできます
本当に終了して良いかのメッセージボックスなどを表示するなどは必要かもしれませんが …
No.1
- 回答日時:
textbox1にFocusがある状態で、終了ボタンをクリックした場合、クリックイベントよりロストフォーカスイベントの方が先に発生します。
なので、ロストフォーカスの処理をキャンセルすることはできません。
よって、ロストフォーカスにエラー処理を書くのではなく、他のコントロールのゴットフォーカスで、textbox1のエラーチェックを行うようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
private subモジュールを他のモ...
-
【C#/Java?】try-catchでcatch...
-
特定の名前のオートシェイプの...
-
vbaのエラー対応(実行時エラー...
-
Excel VBA セルの名前があるか...
-
VB.NET SPRED(チェックボック...
-
メモリ不足になった後の処理
-
IF文に時間(何時から何時ま...
-
【VBA】エラー処理で別プロシー...
-
どう増強すべきか
-
特定のファイルを他のプロセス...
-
シグナル 6(SIGABRT)とは?
-
Excelプロセスが消えない
-
ASP(VBScript)でDBのテキス...
-
順番に処理させたい
-
途中で処理を中断させたい (ア...
-
【Vb.net】プリンタジョブの取得
-
起動しているIEをVBSで閉じると...
-
エクセル VBAで複数セル選択時...
-
Functionで戻り値を複数返す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
特定の名前のオートシェイプの...
-
途中で処理を中断させたい (ア...
-
特定のファイルを他のプロセス...
-
順番に処理させたい
-
Word VBA。各マクロの間に待ち...
-
StatusStripの表示が更新されな...
-
ドリブン??
-
ExcelのVBAで、選択したファイ...
-
RaiseEventのメリット
-
【VBA】エラー処理で別プロシー...
-
エクセルVBAでロックをかけたい
-
どうやってもFor文を抜けてしま...
おすすめ情報