我有以下应用程序代码:
Public Class Form1
Public Sub New()
InitializeComponent()
Dim datatableCombo = New DataTable
datatableCombo.Columns.Add("ID", GetType(Integer))
datatableCombo.Columns.Add("Name", GetType(String))
datatableCombo.Rows.Add({0, ""})
datatableCombo.Rows.Add({1, "123"})
datatableCombo.Rows.Add({2, "234"})
datatableCombo.Rows.Add({3, "456"})
UltraCombo1.DataSource = datatableCombo
Dim datatableGrid = New DataTable
datatableGrid.Columns.Add("ID", GetType(Integer))
datatableGrid.Columns.Add("Name", GetType(String))
SsiGrid1.DataSource = datatableGrid
SsiGrid1.DisplayLayout.GroupByBox.Hidden = True
SsiGrid1.DisplayLayout.Override.RowSelectors = DefaultableBoolean.True
SsiGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom
SsiGrid1.DisplayLayout.Bands(0).Columns("ID").EditorComponent = UltraCombo1
SsiGrid1.DisplayLayout.Bands(0).Columns("ID").CellClickAction = CellClickAction.EditAndSelectText
SsiGrid1.DisplayLayout.Bands(0).Columns("ID").Style = ColumnStyle.DropDownValidate
End Sub
Private Sub UltraCombo1_InitializeLayout(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles UltraCombo1.InitializeLayout
UltraCombo1.ValueMember = "ID"
UltraCombo1.DisplayMember = "Name"
Dim band As UltraGridBand = Me.UltraCombo1.DisplayLayout.Bands(0)
Dim position As Integer = 0
band.Columns("ID").Hidden = False
band.Columns("ID").Header.VisiblePosition = position
position += 1
band.Columns("Name").Hidden = False
band.Columns("Name").Header.VisiblePosition = position
position += 1
band.Override.AllowRowFiltering = DefaultableBoolean.False
band.Override.RowFilterMode = RowFilterMode.AllRowsInBand
band.ColumnFilters("ID").FilterConditions.Clear()
band.ColumnFilters("ID").FilterConditions.Add(FilterComparisionOperator.NotEquals, 0)
End Sub
End Class我相信这应该会让组合框不会显示零行,除非你实际输入了一个零。但当我运行它时,它确实显示了零行。我的代码有什么问题吗?
发布于 2016-03-08 01:02:32
你是对的。此代码应从下拉列表中隐藏零。出现此错误的一个可能原因可能是您没有实际处理组合的InitializeLayout事件。如果针对InitializeLayout事件选择了UltraCombo1_InitializeLayout,您可以通过打开设计器,选择组合框并签入属性窗口来轻松地检查这一点。您还可以将断点放在事件处理程序中的某个位置,并查看是否曾经到达过它。
https://stackoverflow.com/questions/35805558
复制相似问题