为什么我在这里得到 "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
时,您实际上会检索 SelectedItem
的 Date
属性。
对该字符串进行索引将检索 'nth' 字符,我确定这不是您想要的。由于您没有提供任何设置 ValueMember
的代码,我只能假设您将其设置为 3 个或更少字符的字符串,这就是它为什么会掉下来的原因。
您真正想在代码中做的是检索值:
DateTime dt = Convert.ToDateTime(comboBoxWeekToSchedule.SelectedValue);
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
时,您实际上会检索 SelectedItem
的 Date
属性。
对该字符串进行索引将检索 'nth' 字符,我确定这不是您想要的。由于您没有提供任何设置 ValueMember
的代码,我只能假设您将其设置为 3 个或更少字符的字符串,这就是它为什么会掉下来的原因。
您真正想在代码中做的是检索值:
DateTime dt = Convert.ToDateTime(comboBoxWeekToSchedule.SelectedValue);