更改DataGridView的索引

时间:2013-12-25 09:56:36

标签: c# datagridview

我的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

4 个答案:

答案 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));