为什么我在这里得到 "IndexOutOfRangeException was unhandled"?

Why am I getting an "IndexOutOfRangeException was unhandled" here?

comboBoxWeekToSchedule 中有 13 个条目,而我 select 索引 3 处的条目(comboBoxWeekToSchedule 中的第四项)。然而,“IndexOutOfRangeException 未处理”异常被抛出。

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

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

comboBoxWeekToSchedule中的值是LongDateString格式的日期;我特别选择的是 "Monday, March 7, 2016"

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

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

对该字符串进行索引将检索 'nth' 字符,我确定这不是您想要的。由于您没有提供任何设置 ValueMember 的代码,我只能假设您将其设置为 3 个或更少字符的字符串,这就是它为什么会掉下来的原因。

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

DateTime dt = Convert.ToDateTime(comboBoxWeekToSchedule.SelectedValue);