0

当我选择索引 3 处的条目(comboBoxWeekToSchedule 中的第四项)时,comboBoxWeekToSchedule 中有 13 个条目。然而,“ IndexOutOfRangeException was unhandled ”异常被抛出。

这是引发异常的运行代码(在处理程序的第一行):

private void comboBoxWeekToSchedule_SelectedIndexChanged(object sender, EventArgs eargs)
{
    DateTime dt = Convert.ToDateTime(comboBoxWeekToSchedule.ValueMember[comboBoxWeekToSchedule.SelectedIndex]);
    DisableICRVBS(AYttFMConstsAndUtils.IsFirstWeekOfMonth(dt));            
}

comboBoxWeekToSchedule 中的值是 LongDateString 格式的日期;我特别选择的是“2016 年 3 月 7 日,星期一”

那么 SelectedIndex 怎么可能超出范围呢?

4

1 回答 1

1

ValueMember是一个字符串。当您使用该属性时,控件使用它ComboBox来检索(使用反射)与特定元素关联的值。comboBoxWeetToSchedule.SelectedValue因此,您可以将其设置为类似"Date",当您引用时,SelectedValue您将真正检索SelectedItem'Date属性。

对该字符串进行索引将检索“第 n 个”字符,我确定这不是您想要做的。由于您没有提供任何设置的代码ValueMember,我只能假设您将其设置为 3 个字符或更少的字符串,这就是它失败的原因。

您真正想要在代码中做的是检索值:

DateTime dt = Convert.ToDateTime(comboBoxWeekToSchedule.SelectedValue);
于 2016-02-11T01:53:22.307 回答