使用Validating事件后,关闭窗体问题??? 对窗体的textbox使用Validating事件后,窗体右上方的关闭(红色的叉)无法使用了。现在只能通过窗体上已经做好的关闭按钮来关闭。想向前辈们求一段代码,可以通过窗体右上方的关闭来关闭窗体。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Private Sub GM0300_G00_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _ Handles _ 処理種別.Validating, 運輸会社コードコンポボックス.Validating, 正式名称.Validating, 略名称.Validating, _ 郵便番号1.Validating, 郵便番号2.Validating Dim W_RTN As String 'エラーメッセージエリアクリア Me.エラーメッセージ.Text = "" '終了ボタンが押された(Focus)時はチェック処理を行わない If Btn_終了.Focused = True Then Exit Sub End If 'データチェック処理 Select Case W_GMN_ACT Case "処理種別" '文字色、背景色クリア Me.処理種別.BackColor = Color.White Me.処理種別.ForeColor = Color.Black If Me.処理種別.Text = "1" Then Else If Me.処理種別.Text = "2" Then Else If Me.処理種別.Text = "3" Then Else If Me.処理種別.Text = "4" Then Else W_RTN = "処理区分に誤りがあります" エラーメッセージ.ForeColor = Color.Red 処理種別.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.処理種別.Select(0, Me.処理種別.Text.Length) End If End If End If End If Case "運輸会社コードコンポボックス" ''文字色、背景色クリア Me.運輸会社コードコンポボックス.BackColor = Color.White Me.運輸会社コードコンポボックス.ForeColor = Color.Black W_RTN = "OK" If Me.運輸会社コードコンポボックス.Text = "" Then W_RTN = "運輸会社コードが未入力です" Else 'SQL SERVER(データ読込) 'SQL SERVER(DBOPEN) SQL_エラー = SUB_DB_OPEN("SUB_項目チェック") 'SQL SERVER(コマンドセット) SQL_エラー = SUB_DB_COMMAND("SUB_項目チェック", "SYAC", "キー指定全項目読込み") 'パラメータに値をセットする SQL_コマンド.Parameters("@運輸会社コード").Value = 運輸会社コードコンポボックス.Text 'クエリーを実行する(該当するキーのレコードを読み込む) Try SQL_SYACDB_READER = SQL_コマンド.ExecuteReader() Catch SQL_例外 As SqlClient.SqlException MessageBox.Show(SQL_例外.Message, "DB ExecuteReaderエラー" & " 発生場所:" & "GM0300_G00_Validating") End Try Try SQL_SYACDB_RETURN = SQL_SYACDB_READER.Read Catch SQL_例外 As SqlClient.SqlException MessageBox.Show(SQL_例外.Message, "DB READエラー" & " 発生場所:" & "GM0300_G00_Validating") End Try 'データ存在時 If SQL_SYACDB_READER.HasRows = False Then If Me.処理種別.Text.StartsWith("1") Then W_RTN = Fun_全半角文字チェック(Me.運輸会社コードコンポボックス.Text, "半", W_GMN_ACT) If W_RTN = "OK" Then Else W_RTN = "運輸会社コードが全角で入力されている" End If Else W_RTN = "該当する運輸会社コードが未登録です" End If Else If Me.処理種別.Text.StartsWith("1") Then W_RTN = "既に該当する運輸会社コードが登録済みです" Else SUB_画面項目セット() End If End If 'データリーダーをCLOSEする SQL_SYACDB_READER.Close() 'DB(CLOSE) SQL_接続.Close() End If '処理区分が押された(Focus)時はチェック処理を行わない If Me.処理種別.Focused = True Then Exit Sub End If If W_RTN = "OK" Then '画面をデータ入力状態に設定 W_GMN_FLG = SUB_画面設定("BODY") Else 'エラー項目及びメッセージ属性変更 エラーメッセージ.ForeColor = Color.Red 運輸会社コードコンポボックス.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.運輸会社コードコンポボックス.Select(0, Me.運輸会社コードコンポボックス.Text.Length) End If Case "正式名称" '文字色、背景色クリア Me.正式名称.BackColor = Color.White Me.正式名称.ForeColor = Color.Black '必須チェック If Me.正式名称.Text = "" Then W_RTN = "正式名称が未入力です" エラーメッセージ.ForeColor = Color.Red 正式名称.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.正式名称.Select(0, Me.正式名称.Text.Length) End If Case "略名称" '文字色、背景色クリア Me.略名称.BackColor = Color.White Me.略名称.ForeColor = Color.Black '必須チェック If Me.略名称.Text = "" Then W_RTN = "略名称が未入力です" エラーメッセージ.ForeColor = Color.Red 略名称.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.略名称.Select(0, Me.略名称.Text.Length) End If Case "郵便番号1" 'Case "会社郵便番号" ' '文字色、背景色クリア Me.郵便番号1.BackColor = Color.White Me.郵便番号1.ForeColor = Color.Black '数値チェック W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT) If Mid(W_RTN, 1, 2) = "OK" Then Else W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT) エラーメッセージ.ForeColor = Color.Red Me.郵便番号1.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.郵便番号1.Select(0, Me.郵便番号1.Text.Length) End If Case "郵便番号2" 'Case "会社郵便番号" ' '文字色、背景色クリア Me.郵便番号2.BackColor = Color.White Me.郵便番号2.ForeColor = Color.Black '数値チェック W_RTN = Fun_数値チェック(Me.郵便番号2.Text, 4, 0, "###", W_GMN_ACT) If Mid(W_RTN, 1, 2) = "OK" Then Else W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT) W_RTN = Mid(W_RTN, 1, 2) エラーメッセージ.ForeColor = Color.Red Me.郵便番号2.BackColor = Color.Red エラーメッセージ.Text = W_RTN e.Cancel = True Me.郵便番号2.Select(0, Me.郵便番号1.Text.Length) End If End Select 以上是关于Validating事件中的全部代码?在网上查原因是使用Validating事件后,右上边的关闭将不能使用。需要写一段窗体的closing事件?但是在from事件里没找到closing事件啊? 呵呵,问题解决了!在代码最开始位置加上一句If ActiveControl.CausesValidation = True Then Exit Sub End If就可以了!谢谢前辈! 窗口嵌入桌面后不重绘的问题如何解决?请赐教! 辞职了,不过悲剧的要交接一个月。 程序 一运行就报 “用户类型未定义” 错误 请高手指教 着急啊!!!!!! 讨论一下TIMER控件 一个很简单的东东 请教个很莱的问题 cannot initialize data bindings报错 串口数据转换问题,急,在线等!!! 如何在运行时下控制TextBox(多行)中内容换行? 程序退出时出错? 请教一个简单的数据库应用问题 图形按钮之间的复制、粘贴如何实现?
Private Sub GM0300_G00_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
Handles _
処理種別.Validating, 運輸会社コードコンポボックス.Validating, 正式名称.Validating, 略名称.Validating, _
郵便番号1.Validating, 郵便番号2.Validating Dim W_RTN As String 'エラーメッセージエリアクリア
Me.エラーメッセージ.Text = "" '終了ボタンが押された(Focus)時はチェック処理を行わない
If Btn_終了.Focused = True Then
Exit Sub
End If 'データチェック処理
Select Case W_GMN_ACT
Case "処理種別"
'文字色、背景色クリア
Me.処理種別.BackColor = Color.White
Me.処理種別.ForeColor = Color.Black
If Me.処理種別.Text = "1" Then
Else
If Me.処理種別.Text = "2" Then
Else
If Me.処理種別.Text = "3" Then
Else
If Me.処理種別.Text = "4" Then
Else
W_RTN = "処理区分に誤りがあります"
エラーメッセージ.ForeColor = Color.Red
処理種別.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.処理種別.Select(0, Me.処理種別.Text.Length) End If
End If
End If
End If
Case "運輸会社コードコンポボックス" ''文字色、背景色クリア
Me.運輸会社コードコンポボックス.BackColor = Color.White
Me.運輸会社コードコンポボックス.ForeColor = Color.Black
W_RTN = "OK"
If Me.運輸会社コードコンポボックス.Text = "" Then
W_RTN = "運輸会社コードが未入力です"
Else 'SQL SERVER(データ読込)
'SQL SERVER(DBOPEN)
SQL_エラー = SUB_DB_OPEN("SUB_項目チェック")
'SQL SERVER(コマンドセット)
SQL_エラー = SUB_DB_COMMAND("SUB_項目チェック", "SYAC", "キー指定全項目読込み")
'パラメータに値をセットする
SQL_コマンド.Parameters("@運輸会社コード").Value = 運輸会社コードコンポボックス.Text
'クエリーを実行する(該当するキーのレコードを読み込む)
Try SQL_SYACDB_READER = SQL_コマンド.ExecuteReader()
Catch SQL_例外 As SqlClient.SqlException
MessageBox.Show(SQL_例外.Message, "DB ExecuteReaderエラー" & " 発生場所:" & "GM0300_G00_Validating")
End Try
Try
SQL_SYACDB_RETURN = SQL_SYACDB_READER.Read
Catch SQL_例外 As SqlClient.SqlException
MessageBox.Show(SQL_例外.Message, "DB READエラー" & " 発生場所:" & "GM0300_G00_Validating")
End Try 'データ存在時
If SQL_SYACDB_READER.HasRows = False Then
If Me.処理種別.Text.StartsWith("1") Then
W_RTN = Fun_全半角文字チェック(Me.運輸会社コードコンポボックス.Text, "半", W_GMN_ACT)
If W_RTN = "OK" Then
Else
W_RTN = "運輸会社コードが全角で入力されている"
End If
Else
W_RTN = "該当する運輸会社コードが未登録です"
End If
Else
If Me.処理種別.Text.StartsWith("1") Then
W_RTN = "既に該当する運輸会社コードが登録済みです"
Else
SUB_画面項目セット()
End If
End If 'データリーダーをCLOSEする
SQL_SYACDB_READER.Close()
'DB(CLOSE)
SQL_接続.Close()
End If
'処理区分が押された(Focus)時はチェック処理を行わない
If Me.処理種別.Focused = True Then
Exit Sub
End If If W_RTN = "OK" Then
'画面をデータ入力状態に設定
W_GMN_FLG = SUB_画面設定("BODY")
Else
'エラー項目及びメッセージ属性変更
エラーメッセージ.ForeColor = Color.Red
運輸会社コードコンポボックス.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.運輸会社コードコンポボックス.Select(0, Me.運輸会社コードコンポボックス.Text.Length)
End If
Case "正式名称"
'文字色、背景色クリア
Me.正式名称.BackColor = Color.White
Me.正式名称.ForeColor = Color.Black
'必須チェック
If Me.正式名称.Text = "" Then
W_RTN = "正式名称が未入力です"
エラーメッセージ.ForeColor = Color.Red
正式名称.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.正式名称.Select(0, Me.正式名称.Text.Length)
End If
Case "略名称"
'文字色、背景色クリア
Me.略名称.BackColor = Color.White
Me.略名称.ForeColor = Color.Black
'必須チェック
If Me.略名称.Text = "" Then
W_RTN = "略名称が未入力です"
エラーメッセージ.ForeColor = Color.Red 略名称.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.略名称.Select(0, Me.略名称.Text.Length)
End If Case "郵便番号1"
'Case "会社郵便番号"
' '文字色、背景色クリア
Me.郵便番号1.BackColor = Color.White
Me.郵便番号1.ForeColor = Color.Black
'数値チェック
W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT)
If Mid(W_RTN, 1, 2) = "OK" Then Else
W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT)
エラーメッセージ.ForeColor = Color.Red
Me.郵便番号1.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.郵便番号1.Select(0, Me.郵便番号1.Text.Length)
End If Case "郵便番号2"
'Case "会社郵便番号"
' '文字色、背景色クリア
Me.郵便番号2.BackColor = Color.White
Me.郵便番号2.ForeColor = Color.Black
'数値チェック
W_RTN = Fun_数値チェック(Me.郵便番号2.Text, 4, 0, "###", W_GMN_ACT)
If Mid(W_RTN, 1, 2) = "OK" Then
Else
W_RTN = Fun_数値チェック(Me.郵便番号1.Text, 3, 0, "###", W_GMN_ACT)
W_RTN = Mid(W_RTN, 1, 2) エラーメッセージ.ForeColor = Color.Red
Me.郵便番号2.BackColor = Color.Red
エラーメッセージ.Text = W_RTN
e.Cancel = True
Me.郵便番号2.Select(0, Me.郵便番号1.Text.Length)
End If End Select
If ActiveControl.CausesValidation = True Then
Exit Sub
End If
就可以了!谢谢前辈!