在ComboBox中设置最小数量

时间:2016-04-19 02:42:45

标签: vb.net

我正在使用此行为我的ComboBox生成一组数字。

Main.ComboBox.Items.AddRange(Enumerable.Range(1, maxNum).Select(Function(s) s.ToString()).ToArray())

我想知道如何设定它的最小值?例如,6-100,而不是默认的1-100。

更新

我在项目属性设置选项卡中使用值为0的numberSetting。

numberSetting的实际值来自:

My.Settings.numberSetting = CInt(ComboBox.Text)

一旦numberSetting有了它的值,我就用maxNum来设置ComboBox中的最大选项数:

Dim maxNum = My.Settings.numberSetting
    Dim winners = Enumerable.Range(1, maxNum).OrderBy(Function(r) rand.Next()).Take(5).ToArray()

如果我从ComboBox中选择100作为我的选项,这允许我获得100个复选框。我要做的是将最小选项设置为6,这样组合框中的1,2,3,4和5不是选项。

解决:

Private Sub Options_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim maxNum = My.Settings.numberSetting2
    NumberCombo.Items.AddRange(Enumerable.Range(6, maxNum - 5).Select(Function(s) s.ToString()).ToArray())
End Sub

My.Settings.numberSetting2的默认值为100。

1 个答案:

答案 0 :(得分:1)

是的,你可以。但是,请注意参数是 start count (不是 max )。因此,您应该像这样调整ComboBox初始化:

Dim minNum As Integer = 6
Dim maxNum As Integer = 100
Main.ComboBox.Items.AddRange(Enumerable.Range(minNum, maxNum - minNum + 1).Select(Function(s) s.ToString()).ToArray())

请注意,您应将Range(1, maxNum)更改为Range(minNum, maxNum - minNum + 1)

修改

这是该计划的结果

之前:ComboBox

中没有任何项目

enter image description here

代码:显示Enumerable.Range

的使用

enter image description here

之后:ComboBox点击

后,从Button开始显示结果

enter image description here

如果您正确使用它并确保清除之前的ComboBox项,那么Enumerable.Range(minNum, maxNum - minNum + 1) 应该正常工作。

编辑2:

如果您在所有这些值之后仍然有一些值,那么您ComboBox中可能有一个硬编码值。在这种情况下,您可能想查看designer - >点击ComboBox - >检查其Collection属性。那里可能存在一些硬编码值。或者,在添加项目之前尝试实施ComboBox.Items.Clear()以确保一切都已清除。