组合框用户进行选择,valuechanged 触发并给出 s 值(很好)
当 (1) 中的值更改时,我想从不同的组合框中触发另一个事件(这适用于单击事件,即当用户使用鼠标从 1 中选择值时,一切正常)。
问题是,如果用户使用箭头键更改 (1) 中的选择,则 (2) 中的事件不会触发。我需要它开火
Private Sub AgencyOriLookup_EditValueChanged(sender As Object, e As EventArgs) Handles AgencyOriLookup.EditValueChanged
cbSelection.SelectedItem = " "
CloseCustomRange()
cbSelection.SelectedItem = "Last 3 Months" 'Using this to fire the
'selected value change event;
'however, it does not fire when using the arrow keys
End Sub
Private Sub cbSelection_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbSelection.SelectedValueChanged
If AgencyOriLookup.Text = "" Then
'LabelControl4.Text = "Agency Not Selected"
Exit Sub
End If
If cbSelection.SelectedItem <> "Custom Range" Then
CloseCustomRange()
End If
strDateRangeDisplayed = String.Empty
Select Case cbSelection.SelectedItem
Case "This Month"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)
deEndDate.EditValue = DateTime.Now.Date
Case "Last Month"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1)
Case "Year To Date"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 1, 1)
deEndDate.EditValue = DateTime.Now.Date
Case "Last 3 Months"
Dim baseDate As Date = New Date(Now.Year, Now.Month, 1)
Dim startDate As Date = baseDate.AddMonths(-2)
deStartDate.EditValue = startDate
deEndDate.EditValue = DateTime.Now.Date
Case "Last Year"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 12, 31)
Case "1st Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 3, 31)
Case "2nd Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 4, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 6, 30)
Case "3rd Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 6, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 9, 30)
Case "4th Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 10, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 12, 31)
Case "1st Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 3, 31)
Case "2nd Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 4, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 6, 30)
Case "3rd Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 7, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 9, 30)
Case "4th Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 10, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 12, 31)
Case "Custom Range"
lcidteEndDate.ContentVisible = True
lcidteStartDate.ContentVisible = True
lcibtnSearch.ContentVisible = True
If _fromErrorsWarnings = False Then
lcicboSelectCriteria.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
Else
lcicboSelectCriteria.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
End If
lciEndDateLabel.ContentVisible = True
lciStartDateLabel.ContentVisible = True
lcibtnSearch.ContentVisible = True
End Select
end sub
答案 0 :(得分:0)
只需创建一个 Sub
并在需要时调用它,而不是触发事件
这样的事情(我无法测试您的代码,因为不完整):
Private Sub AgencyOriLookup_EditValueChanged(sender As Object, e As EventArgs) Handles AgencyOriLookup.EditValueChanged
cbSelection.SelectedItem = "Last 3 Months"
Update()
End Sub
Private Sub cbSelection_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbSelection.SelectedValueChanged
Update()
End Sub
Private Sub Update()
If AgencyOriLookup.Text = "" Then
'LabelControl4.Text = "Agency Not Selected"
Exit Sub
End If
If cbSelection.SelectedItem <> "Custom Range" Then
CloseCustomRange()
End If
'
strDateRangeDisplayed = String.Empty
Select Case cbSelection.SelectedItem
Case "This Month"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)
deEndDate.EditValue = DateTime.Now.Date
Case "Last Month"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1)
Case "Year To Date"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 1, 1)
deEndDate.EditValue = DateTime.Now.Date
Case "Last 3 Months"
Dim baseDate As Date = New Date(Now.Year, Now.Month, 1)
Dim startDate As Date = baseDate.AddMonths(-2)
deStartDate.EditValue = startDate
deEndDate.EditValue = DateTime.Now.Date
Case "Last Year"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 12, 31)
Case "1st Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 3, 31)
Case "2nd Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 4, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 6, 30)
Case "3rd Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 6, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 9, 30)
Case "4th Quarter-CurrentYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year, 10, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year, 12, 31)
Case "1st Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 1, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 3, 31)
Case "2nd Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 4, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 6, 30)
Case "3rd Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 7, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 9, 30)
Case "4th Quarter-LastYear"
deStartDate.EditValue = New DateTime(DateTime.Now.Year - 1, 10, 1)
deEndDate.EditValue = New DateTime(DateTime.Now.Year - 1, 12, 31)
Case "Custom Range"
lcidteEndDate.ContentVisible = True
lcidteStartDate.ContentVisible = True
lcibtnSearch.ContentVisible = True
If _fromErrorsWarnings = False Then
lcicboSelectCriteria.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
Else
lcicboSelectCriteria.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
End If
lciEndDateLabel.ContentVisible = True
lciStartDateLabel.ContentVisible = True
lcibtnSearch.ContentVisible = True
End Select
end sub