سلام
من برای نمایش پیغام خطا در یوزرفرم از MsgBox استفاده کردم
که شامل چهار پیغام هست
1_جاهای خالی را که با رنگ سبز مشخص شده پر کنید.
2_رمز عبور قبلی صحیح نیست.
3_رمزهای عبور باهم مطابقت ندارند.
4_رمز عبور با موفقیت تغییر کرد.
در پیغام اول نوشتهها و کادر پایین که کلید OK در اونجا هست به رنگ سبز در میاند
تو پیغام دوم و سوم هم به رنگ قرمز در میاند.
پیغام چهارم هم به حالت پیش فرض قرار داره
بعد از اتمام کار رنگ نوشتهها به حالت قبل بر میگرده تا اینجای کار درسته و هیچ مشکلی نیست مشکل اینجاست که رنگ کادر پایین بعد از خروج به حالت پیشفرض بر نمیکرده و مشکی میشود مانند تصویر زیر

من برای این کار از کد زیر استفاده کردم
من برای نمایش پیغام خطا در یوزرفرم از MsgBox استفاده کردم
که شامل چهار پیغام هست
1_جاهای خالی را که با رنگ سبز مشخص شده پر کنید.
2_رمز عبور قبلی صحیح نیست.
3_رمزهای عبور باهم مطابقت ندارند.
4_رمز عبور با موفقیت تغییر کرد.
در پیغام اول نوشتهها و کادر پایین که کلید OK در اونجا هست به رنگ سبز در میاند
تو پیغام دوم و سوم هم به رنگ قرمز در میاند.
پیغام چهارم هم به حالت پیش فرض قرار داره
بعد از اتمام کار رنگ نوشتهها به حالت قبل بر میگرده تا اینجای کار درسته و هیچ مشکلی نیست مشکل اینجاست که رنگ کادر پایین بعد از خروج به حالت پیشفرض بر نمیکرده و مشکی میشود مانند تصویر زیر
من برای این کار از کد زیر استفاده کردم
کد PHP:
Option Explicit
#If Win64 Then
Private Declare PtrSafe Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Private Declare PtrSafe Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#Else
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
#End If
Private Const COLOR_MENU As Long = 4
Private Const COLOR_WINDOWTEXT As Long = 8
Private Const CHANGE_INDEX As Long = 1
Private Sub CommandButton1_Click()
Dim defaultColour As Long
defaultColour = GetSysColor(COLOR_MENU)
'رنگ سيستم پيش فرض را ذخيره کنيد
defaultColour = GetSysColor(COLOR_WINDOWTEXT)
If CheckForm = False Then
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbGreen
SetSysColors CHANGE_INDEX, COLOR_MENU, vbGreen
MsgBox ".لطفاً موارد مشخص شده با رنگ سبز را تکميل نماييد", vbInformation + vbMsgBoxRight, "خطا در ثبت اطلاعات"
'بازگرداندن مقدار پيش فرض
SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, defaultColour
SetSysColors CHANGE_INDEX, COLOR_MENU, defaultColour
Exit Sub
End Sub
کامنت