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

投稿日: 2004/04/19(Mon) 16:03
投稿者サム
Eメール
URL
タイトルRe^3: Validateイベントの回避

> ……という意味の回答を(No.8699に)書いたつもりだったのですが、
> すみません。あの回答では、ちょっと分かりにくかったかもしれませんね。(^^;
>
いえいえ、意味は分かったのですが、使い方がいまいちだったので。

Private Sub Command1_Click()  '終了ボタン
Res = MsgBox("データが更新されています。終了してよろしいですか?", vbOKCancel)
If (Rei = vbOK) Then
  Unload Me
Else
  Form1.ValidateControls
End If
としておくと、確かにValidateイベントが発生するのですが、

Private Sub Text1_Validate(Cancel As Boolean)
  If (CInt(Text1.Text) < -30) Or (CInt(Text1.Text) > 30) Then
    MsgBox ("ダメ!")
    Cancel = True
  End If
End Sub
とすると、Cancel後また
Form1.ValidateControls
の行に復帰し、今度はイベントが処理済みだからか
「プロパティの値が不正です。」のエラーになってしまいます。
Command1_Click()内に
On Error Resume Nextを書いておけば回避できるのですが、
こんな使い方でよいのでしょうか。


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

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

- Web Forum -