我的Windows应用程序中有datagridview
。问题是索引从0
开始,我需要它在1
。
private void button1_Click(object sender, EventArgs e)
{
Int32 rowIndex;
try
{
rowIndex = dataGridView1.CurrentRow.Index;
rowIndex = rowIndex + 1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show(dataGridView1.CurrentRow.ToString());
当我点击这些行时,1
中的index
始终为index + 1
。所以{{1}}无效。
Merry Xmas
答案 0 :(得分:2)
试试这个:
private void button1_Click(object sender, EventArgs e)
{
Int32 rowIndex;
try
{
rowIndex = dataGridView1.CurrentRow.Index;
rowIndex = rowIndex + 1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show(rowIndex.ToString());
}
由于您在计算rowIndex = dataGridView1.CurrentRow.Index + 1;
但最终打印dataGridView1.CurrentRow.Index
。应该rowIndex.ToString()
需要结果。
答案 1 :(得分:1)
如果我理解正确,您希望行索引以1开头,因为您也在其他地方使用它。如果是这种情况,只需先创建一个空行,并将其visible属性设置为false。
更新:抱歉。这是代码:
int i = DataGridView1.Rows.Add();
DataGridView1.Rows[i].Visible = false;
答案 2 :(得分:1)
在NET中(但不仅仅在.NET中),所有数组索引都从零开始。 DataGridView的Rows集合也不例外。从技术上讲,数组索引实际上是从数组开始的偏移量。因此,第一个元素在索引零处,因为它从数组的开头偏移零元素。
如果要显示natural
(第一个,第二个,第三个等等)行号,那么当您想显示{{1}时,只需将{1}}变量添加1即可数字,但不要将计算值用作集合的索引。
在VB6的旧时代,有一个语句rowIndex
可以改变数组的基本索引,但这是no more supported by the NET framework neither for VB.NET and C#。
我真的建议不要反对框架的规则并遵循它们。如果你这样做(假设你可以做得对),你就会为未来创造一个维护噩梦。
答案 3 :(得分:1)
所有数组和集合均为零,您无法更改。
但是,您可以显示格式化字符串:
MessageBox.Show(String.Format("DataGridViewRow Index = {0}",
dataGridView1.CurrentRow.Index + 1));