【发布时间】:2015-02-18 12:06:19
【问题描述】:
嘿,我在这里有一段代码,我想要它做的是注意是否在任何文本框中输入了数据,如果没有,则会出现错误 ** 警告 - 数据错误” “请参考红框”...我通过使用类似这样的东西让它工作了`
Dim bErr As Boolean
' Initialise Error Checking
Dim uStackframe As New Diagnostics.StackFrame
Try
' Clear Previous Errors
For Each ControlChild In Me.Controls
If TypeOf ControlChild Is Label Then
ControlChild.forecolor = Color.Black
End If
Next
' Check Data
If cmbApplianceType.Text = "" Then
bErr = True
lblApplianceType.ForeColor = Color.Red
Else
cmbApplianceType.ForeColor = Color.Black
End If
`
但它会变得很长,所以我试图将其缩减为如下所示:但我想不出一种将标签链接到相应文本框的方法是否有某种方法可以做到这一点,例如,如果我所有的名称为 txtFirstname 或其他名称的文本框,相应的标签是 lblFirstname?
Private Sub tsbSaveProperty_Click(sender As Object, e As EventArgs) Handles tsbSaveProperty.Click
'** Save Property Data
Dim bSaved As Boolean
Dim cSaved As Boolean
Dim dSaved As Boolean
' Error Checking
Dim uStackframe As New Diagnostics.StackFrame
Dim bErr As Boolean
Dim myControl As Control = Me
Dim mylbl As Control = Me
Try
Do
If TypeOf myControl Is TextBox And TypeOf mylbl Is Label And myControl.Text = String.Empty Then
bErr = True
mylbl.ForeColor = Color.Red
End If
myControl = Me.GetNextControl(myControl, True)
Loop Until myControl Is Nothing
bSaved = SaveProperty()
cSaved = SavePropertyDetails()
dSaved = SavePropertyExpiries()
' PropertyMaster()
If bErr Then
MsgBox("** Warning - Errors in Data" & vbCrLf & "Please refer to red boxes")
Else
If bSaved = True And cSaved = True And dSaved = True Then
WriteAuditLogRecord(Me.Name, "SaveProperty", "OK", "Save Property" & lblPropertyIDValue.Text, 0)
bDataChanged = False
MsgBox("Property Master Data saved successfully", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "AztecCRM - Contact Information")
LoadPropertyTree()
Else
WriteAuditLogRecord(Me.Name, "SaveProperty", "FAIL", "Save Property", 0)
txtAddress1.Select()
MsgBox("Property Master Update Failed", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "AztecCRM - Contact Information")
End If
End If
Catch ex As Exception
' Catch Error
If Err.Number <> 0 Then
WriteAuditLogRecord(uStackframe.GetMethod.DeclaringType.FullName, uStackframe.GetMethod.Name.ToString, "Error", Err.Description & vbCrLf & vbCrLf & ex.StackTrace, 0)
MsgBox("System Error Ref: " & sAuditID & vbCrLf & uStackframe.GetMethod.DeclaringType.FullName & " / " & uStackframe.GetMethod.Name.ToString & vbCrLf & Err.Description & vbCrLf & vbCrLf & ex.StackTrace & Chr(13) & sErrDescription, MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "Business Management System - Unexepected Error Ref: " & sAuditID)
End If
Finally
LoadPropertyTree()
End Try
这是我感兴趣的维护部分:
Dim myControl As Control = Me
Dim mylbl As Control = Me
Try
Do
If TypeOf myControl Is TextBox And TypeOf mylbl Is Label And myControl.Text = String.Empty Then
bErr = True
mylbl.ForeColor = Color.Red
End If
myControl = Me.GetNextControl(myControl, True)
Loop Until myControl Is Nothing
【问题讨论】:
-
你的问题是?
-
@sloth 是否有某种方法可以将文本框链接到相应的标签,但不必硬编码每个人都说它是 txtFirstName 和 lblFirstname,它会发现这些是对应的?跨度>
-
谢谢,现在清楚了。
标签: vb.net