我正在使用此行为我的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。
答案 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
代码:显示Enumerable.Range
之后:ComboBox
点击
Button
开始显示结果
如果您正确使用它并确保清除之前的ComboBox
项,那么Enumerable.Range(minNum, maxNum - minNum + 1)
应该正常工作。
编辑2:
如果您在所有这些值之后仍然有一些值,那么您ComboBox
中可能有一个硬编码值。在这种情况下,您可能想查看designer
- >点击ComboBox
- >检查其Collection
属性。那里可能存在一些硬编码值。或者,在添加项目之前尝试实施ComboBox.Items.Clear()
以确保一切都已清除。