我用WinFrom的DataGridView显示一组数据,数据源是RowCount为6的数组,所以e.RowIndex应该是从0~5,可奇怪的是e.RowIndex数到4程序就跳出了,没有走到5,所以结果造成界面显示5组数据,少了一组,请问高人,这是怎么回事?(DataGridView.RowCount我设为6) 万分感谢! 代码如下:
private void dgCurrExcgRate_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (currExchangeRate != null)
{
if (e.RowIndex >= 0 && e.RowIndex < GetCount() )
{
//DataScenarioCurrencyItem currentRow = currExchangeRate[e.RowIndex];
DataScenarioCurrencyItem currentRow = currExchangeRate[e.RowIndex];
switch (this.dgCurrExcgRate.Columns[e.ColumnIndex].Name)
{
case "currName":
//e.Value = currentRow.Scenario_curr_ISO;
e.Value = currentRow.Scenario_curr_ISO;
break;
case "ref_exchangeRate":
//e.Value = LocalizationUtil.FormatMoneyToString(currentRow.Scenario_curr_xchg_rate);
e.Value = LocalizationUtil.Format4DecimalToString(currentRow.Reference_rate);
break;
case "scen_Scenario":
//e.Value = LocalizationUtil.FormatMoneyToString(currentRow.Scenario_curr_xchg_rate);
e.Value = LocalizationUtil.Format4DecimalToString(currentRow.Scenario_curr_xchg_rate);
break;
case "chkRateLock":
e.Value = currentRow.Scenario_curr_freeze_opt;
break;
default:
break;
}
}
}
}
private void dgCurrExcgRate_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
if (currExchangeRate != null)
{
if (e.RowIndex >= 0 && e.RowIndex < GetCount() )
{
//DataScenarioCurrencyItem currentRow = currExchangeRate[e.RowIndex];
DataScenarioCurrencyItem currentRow = currExchangeRate[e.RowIndex];
switch (this.dgCurrExcgRate.Columns[e.ColumnIndex].Name)
{
case "currName":
//e.Value = currentRow.Scenario_curr_ISO;
e.Value = currentRow.Scenario_curr_ISO;
break;
case "ref_exchangeRate":
//e.Value = LocalizationUtil.FormatMoneyToString(currentRow.Scenario_curr_xchg_rate);
e.Value = LocalizationUtil.Format4DecimalToString(currentRow.Reference_rate);
break;
case "scen_Scenario":
//e.Value = LocalizationUtil.FormatMoneyToString(currentRow.Scenario_curr_xchg_rate);
e.Value = LocalizationUtil.Format4DecimalToString(currentRow.Scenario_curr_xchg_rate);
break;
case "chkRateLock":
e.Value = currentRow.Scenario_curr_freeze_opt;
break;
default:
break;
}
}
}
}
调试一下