我有一个包含以下项目的Windows窗体:
ComboBox
TextBox
Buttons
:前进和后退Items
,其中包含string
int
和double
成员if (ComboBox1.SelectedIndex == 2 && Items[index].Price > 50.00 )
{
txtManu.Text = Items[index].Manu;
txtPrice.Text = Convert.ToString(Items[index].Price);
}
当我点击表单上的forward
按钮时,我希望所有超过50.00
的价格都显示在txtPrice.Text
文本框中,但它会显示所有价格。
转发按钮代码段:
else if (comboBox1.SelectedIndex == 2 && Items[index].Price > 50.00)
{
index += 1;
if (index == Items.Length) index = 0;
txtManu.Text = Items[index].Manu;
}
ComboBox
有index[0]
和index[1]
项:ComboBox1.SelectedIndex == 0
和ComboBox1.SelectedIndex == 1
。
转发按钮也有索引0和索引1项:if (comboBox1.SelectedIndex == 0)
和if (comboBox1.SelectedIndex == 1)
为什么if
语句没有执行?
以下是该示例的改进代码:
Items[0] = new items("Car", 30.00);
Items[1] = new itemss("Cat", 55.00);
Items[2] = new items("Cookie", 59.00);
if (ComboBox1.SelectedIndex == 0 && Items[index].Price > 50.00 )
{
txtPrice.Text = Convert.ToString(Items[index].Price);
}
###Forward Button
//single combobox
if (comboBox1.SelectedIndex == 2 && Items[index].Price > 50.00)
{
index += 1;
}
if (index == Items.Length)
{
index = 0;
}
txtPrice.Text = Convert.ToString(Items[index].Price);
答案 0 :(得分:3)
您是否已使用调试器逐步检查?我认为在if之前发生了一个IndexOutBounds异常。我可能会尝试捕获该块,看看你是否在那里获得例外。
答案 1 :(得分:0)
看起来您可能过早地增加该索引。您检查Items[index]
的值,但在使用Items[index]
中的值之前增加索引。所以你实现了:Items[index+1]
但总的来说,我对你的问题很困惑。您可以发布更多代码和更详细的解释吗?