将字体更改应用于增强消息框
Apply font changes to Enhanced Message Box
Renaud Bompuis 团结了一些 great code。我想在 Dialog.RichText
格式的字段结果中进行字体更改(例如粗体)。
我试图让 CaptureEmail
的结果加粗。该框只是使 CaptureEmail
变为粗体。值不显示。如果我从代码中删除 <strong>
,电子邮件会显示,但不是粗体。
Private Sub Other_Email_BeforeUpdate(Cancel As Integer)
' https://www.devhut.net/2016/08/18/validate-e-mail-addresses/
Dim ClickResult As VbMsgBoxResultEx
Dim CaptureEmail
Dim html
CaptureEmail = Me.Other_Email
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
If ValidateEmail(Me.Other_Email) = False Then
ClickResult = Dialog.RichBox("The inputted e-mail " & _
<strong>[CaptureEmail]</strong> & _
" does not appear to be a valid Email_Address. " & "<p/>" & _
"Would you like to recheck it before adding it?", _
vbYesNo + vbCritical, "Invalid Entry", , , 0, False, False, False)
If (ClickResult = vbYes) Then
Cancel = True
ElseIf (ClickResult = vbNo) Then
Exit Sub
End If
ElseIf ValidateEmail(Me.Other_Email) = True Then
Exit Sub
End If
End If
End Sub
希望我理解正确并且对您有所帮助,您也希望 "Would you like to recheck it before adding it?" 加粗。
然后你需要在标签之间封装相同的东西<strong></strong>
与 [CaptureEmail] 位于代码中这些标记之间的方式相同
您的代码的主要问题是连接提供给 RichBox
方法的第一个参数:
"The inputted e-mail " & <strong>[CaptureEmail]</strong> & " does not appear to be a valid Email_Address. " & "<p/>" & _
"Would you like to recheck it before adding it?"
由于 <strong>
& </strong>
是文字字符串,它们应该作为字符串内容的一部分包含在双引号中,例如:
"The inputted e-mail <strong>" & CaptureEmail & "</strong> does not appear to be a valid Email_Address. "
你这里也有一些格式错误的 HTML:
"<p/>"
据推测,这应该是:
"<p>The inputted e-mail <strong>" & CaptureEmail & "</strong> does not appear to be a valid Email_Address.</p>" & _
"<p>Would you like to recheck it before adding it?</p>"
您似乎也在混合数据类型 -
您最初将表单控件 Other_Email
的值分配给您的变量 CaptureEmail
:
CaptureEmail = Me.Other_Email
然后您将 CaptureEmail
视为整数:
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
但是,根据消息框的内容,这意味着 CaptureEmail
实际上包含一个字符串:
The inputted e-mail " & CaptureEmail & " does not appear to be a valid Email_Address.
关于您的代码的一些其他观察结果:
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
鉴于您只希望在 CaptureEmail
大于零时继续,因此只需要测试:
If CaptureEmail > 0 Then
...
End If
同样,在代码的后面,您有以下内容:
If ValidateEmail(Me.Other_Email) = False Then
...
ElseIf ValidateEmail(Me.Other_Email) = True Then
Exit Sub
End If
因为 ValidateEmail
return 是一个只有两个可能值的布尔值,所以没有必要同时测试这两个值,因为如果 return 不是 False
,那么它必须是 True
,反之亦然。
因此,代码可能会变成:
If Not ValidateEmail(Me.Other_Email) Then
...
End If
这里可以应用相同的逻辑:
If (ClickResult = vbYes) Then
Cancel = True
ElseIf (ClickResult = vbNo) Then
Exit Sub
End If
因为,对于 vbYes
以外的任何结果,您都没有执行任何操作。
Renaud Bompuis 团结了一些 great code。我想在 Dialog.RichText
格式的字段结果中进行字体更改(例如粗体)。
我试图让 CaptureEmail
的结果加粗。该框只是使 CaptureEmail
变为粗体。值不显示。如果我从代码中删除 <strong>
,电子邮件会显示,但不是粗体。
Private Sub Other_Email_BeforeUpdate(Cancel As Integer)
' https://www.devhut.net/2016/08/18/validate-e-mail-addresses/
Dim ClickResult As VbMsgBoxResultEx
Dim CaptureEmail
Dim html
CaptureEmail = Me.Other_Email
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
If ValidateEmail(Me.Other_Email) = False Then
ClickResult = Dialog.RichBox("The inputted e-mail " & _
<strong>[CaptureEmail]</strong> & _
" does not appear to be a valid Email_Address. " & "<p/>" & _
"Would you like to recheck it before adding it?", _
vbYesNo + vbCritical, "Invalid Entry", , , 0, False, False, False)
If (ClickResult = vbYes) Then
Cancel = True
ElseIf (ClickResult = vbNo) Then
Exit Sub
End If
ElseIf ValidateEmail(Me.Other_Email) = True Then
Exit Sub
End If
End If
End Sub
希望我理解正确并且对您有所帮助,您也希望 "Would you like to recheck it before adding it?" 加粗。
然后你需要在标签之间封装相同的东西<strong></strong>
与 [CaptureEmail] 位于代码中这些标记之间的方式相同
您的代码的主要问题是连接提供给 RichBox
方法的第一个参数:
"The inputted e-mail " & <strong>[CaptureEmail]</strong> & " does not appear to be a valid Email_Address. " & "<p/>" & _
"Would you like to recheck it before adding it?"
由于 <strong>
& </strong>
是文字字符串,它们应该作为字符串内容的一部分包含在双引号中,例如:
"The inputted e-mail <strong>" & CaptureEmail & "</strong> does not appear to be a valid Email_Address. "
你这里也有一些格式错误的 HTML:
"<p/>"
据推测,这应该是:
"<p>The inputted e-mail <strong>" & CaptureEmail & "</strong> does not appear to be a valid Email_Address.</p>" & _
"<p>Would you like to recheck it before adding it?</p>"
您似乎也在混合数据类型 -
您最初将表单控件 Other_Email
的值分配给您的变量 CaptureEmail
:
CaptureEmail = Me.Other_Email
然后您将 CaptureEmail
视为整数:
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
但是,根据消息框的内容,这意味着 CaptureEmail
实际上包含一个字符串:
The inputted e-mail " & CaptureEmail & " does not appear to be a valid Email_Address.
关于您的代码的一些其他观察结果:
If CaptureEmail = 0 Then
Exit Sub
ElseIf CaptureEmail > 0 Then
鉴于您只希望在 CaptureEmail
大于零时继续,因此只需要测试:
If CaptureEmail > 0 Then
...
End If
同样,在代码的后面,您有以下内容:
If ValidateEmail(Me.Other_Email) = False Then
...
ElseIf ValidateEmail(Me.Other_Email) = True Then
Exit Sub
End If
因为 ValidateEmail
return 是一个只有两个可能值的布尔值,所以没有必要同时测试这两个值,因为如果 return 不是 False
,那么它必须是 True
,反之亦然。
因此,代码可能会变成:
If Not ValidateEmail(Me.Other_Email) Then
...
End If
这里可以应用相同的逻辑:
If (ClickResult = vbYes) Then
Cancel = True
ElseIf (ClickResult = vbNo) Then
Exit Sub
End If
因为,对于 vbYes
以外的任何结果,您都没有执行任何操作。