我有一個列表框和代碼來確保它(和其他元素)被選中。我在代碼中添加了ELSE,這樣如果ListBox有一個選定的項目,它會將背景顏色更改爲白色。如果先前嘗試的條目是重複的(將BG更改爲紅色),則需要執行此操作,但只是將其設置爲默認值就會更容易。當改變列表框背景色時,listbox會自動取消選擇
我的comboBox和textBox不這樣做。任何想法我可以做不同的做法,只有Initialize函數清除它?
感謝,
這裏的代碼段將清除列表框中選擇的項目。註釋上面的行似乎是造成這種情況。
編輯:它會取消選擇每當我更改背景顏色。它也取消選擇何時導致重複,這不會更改背景顏色。因此在許多情況下,列表框自行取消選擇。如果我能找到其中一個原因(其中兩個列在這裏),那麼也許我可以解決第三個問題。
Function HighlightEmpty(ByVal nameSelect As Boolean, ByVal comboSelect As Boolean, ByVal listSelect As Boolean) As Boolean
' Highlight empty fields
If Not nameSelect Then
Enter_New_DTC_Form.SignalNameTxtBox.BackColor = RGB(255, 0, 0)
Else
Enter_New_DTC_Form.SignalNameTxtBox.BackColor = RGB(255, 255, 255)
End If
If Not comboSelect Then
Enter_New_DTC_Form.ComboBox1.BackColor = RGB(255, 0, 0)
Else
Enter_New_DTC_Form.ComboBox1.BackColor = RGB(255, 255, 255)
End If
If Not listSelect Then
Enter_New_DTC_Form.ListBox1.BackColor = RGB(255, 0, 0)
Else
**'This is where it breaks**
Enter_New_DTC_Form.ListBox1.BackColor = RGB(255, 255, 255)
End If
' Set focus to first empty field on form
If Not nameSelect Then
Enter_New_DTC_Form.SignalNameTxtBox.SetFocus
ElseIf Not comboSelect Then
Enter_New_DTC_Form.ComboBox1.SetFocus
ElseIf Not listSelect Then
Enter_New_DTC_Form.ListBox1.SetFocus
End If
' Return boolean to trigger message
HighlightEmpty = Not nameSelect Or Not comboSelect Or Not listSelect
End Function
你如何運行此功能?在什麼事件? – stenci
打開Click_Save按鈕(在窗體上)。每次保存命中時,在填充行並檢查它是否重複(發送消息並刪除行)之前,它會檢查以確保選擇了必填字段。如果不是,則調用該函數來突出顯示空白字段,然後將焦點放在第一個字段上。然後它將退出保存子,以便他們可以再次嘗試。 – JSM
爲什麼你不用Sub來代替。上面的代碼更適合它。你都可以傳遞值。儘管函數不是100%不適用於執行對象方法和屬性(基本上用於返回值),但Subs更好。 – L42