在另一种方法中使用组合框项中的循环



I。这是C#形式中的代码部分

this.cbDay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cbDay.FormattingEnabled = true;
this.cbDay.Items.AddRange(new object[] {
});//items from a loop in another class and method.

II。这是我在另一类中的方法

namespace StudentRegistrationApplication
public class loopComboBoxSelection
{
public loopComboBox(int start, int finsh)
{
for (int i = start; i < finsh; i++)
{
ComboboxItem item = new ComboboxItem();
item.Text = "Item " + i;
item.Value = i;
ModDown.Items.Add(item);
}

}
}

III。我想调用循环方法,该方法将生成从1到100的项。对于这个问题,语法是什么?

this.cbDay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cbDay.FormattingEnabled = true;
this.cbDay.Items.AddRange(new object[] {
"1"
"2"
"3"
"4"
"5"});

你做错了。您应该将数据绑定到ComboBox,例如

cbDay.DisplayMember = nameof(ComboBoxItem.Text);
cbDay.ValueMember = nameof(ComboBoxItem.Value);
cbDay.DataSource = Enumerable.Range(startValue, endValue - startValue + 1)
.Select(i => new ComboBoxItem {Text = $"Item {i}", Value = i})
.ToArray();

Text值随后将显示在控件中,当用户进行选择时,您可以从控件的SelectedValue属性中获得相应的Value

请注意,您不必使用LINQ来创建列表,但重要的是绑定部分。通过设置DataSource,您可以从SelectedValue中获得特定的属性值,而不仅仅是从SelectedItem中获得的值。

相关内容

  • 没有找到相关文章

最新更新