none
如何控制 DataGridView 的 Rows 指標位置? RRS feed

  • 問題

  • 請教各位先進,

    小弟想要控制 DataGridView 的Rows 指標位置,

    如下圖:

     

    001 左邊那個 箭頭 "" (打不出來啦 ><)

    可以控制它到我想指定的 Rows 上!

    請問如何做ㄚ???

     

    2008年3月28日 上午 09:12

解答

  • 請利用 CurrentCell 來移動,例如改為下列方式

     
    private void button1_Click(object sender, EventArgs e)
    {
        int currentRowIndexInt = dataGridView1.CurrentRow.Index;
        int currentColumnIndexInt = dataGridView1.CurrentCell.ColumnIndex;
     
        for (int i = 0; i < dataGridView1.Columns.Count; i++)
        {
            object tmp = dataGridView1[i, currentRowIndexInt].Value;
            dataGridView1[i, currentRowIndexInt].Value = dataGridView1[i, currentRowIndexInt + 1].Value;
            dataGridView1[i, currentRowIndexInt + 1].Value = tmp;
        }
     
        dataGridView1.CurrentCell = dataGridView1[0, currentRowIndexInt + 1];
        dataGridView1.FirstDisplayedScrollingRowIndex = currentRowIndexInt + 1;
    }

    2008年3月29日 上午 04:18

所有回覆

  • 不知道這是不是你要的。
    DataGridView.Rows[10].Selected = true;
    DataGridView.FirstDisplayedScrollingRowIndex = 10;
    2008年3月28日 上午 09:27
  • 哈囉,Howard_cmit 先進,

    DataGridView.Rows[10].Selected = true;

    這一行我是知道,不過只能讓第 11 行 變藍色,

    可是不知為何 DataGridView.FirstDisplayedScrollingRowIndex = 10;

    似乎沒作用???

    我的程式碼如下:

    Code Snippet

    int currentRowIndexInt = this.dataGridView1.CurrentRow.Index;
    int currentColumnIndexInt = this.dataGridView1.CurrentCell.ColumnIndex;

     

    for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
    {
        object tmp = this.dataGridView1[i, currentRowIndexInt].Value;
        this.dataGridView1[i, currentRowIndexInt].Value = this.dataGridView1[i, currentRowIndexInt + 1].Value;
        this.dataGridView1[i, currentRowIndexInt + 1].Value = tmp;
    }

     

    this.dataGridView1.Rows[currentRowIndexInt + 1].Selected = true;
    this.dataGridView1.FirstDisplayedScrollingRowIndex = currentRowIndexInt + 1;

     

    目的就是要讓 Rows 一整行,隨著我的 Button 按下,控制往下移動。

    不過因為 那個指標位置一直不會動。。。導致我的資料無法繼續往下移!

    先謝謝您的建議!
    2008年3月28日 上午 09:38
  • 請利用 CurrentCell 來移動,例如改為下列方式

     
    private void button1_Click(object sender, EventArgs e)
    {
        int currentRowIndexInt = dataGridView1.CurrentRow.Index;
        int currentColumnIndexInt = dataGridView1.CurrentCell.ColumnIndex;
     
        for (int i = 0; i < dataGridView1.Columns.Count; i++)
        {
            object tmp = dataGridView1[i, currentRowIndexInt].Value;
            dataGridView1[i, currentRowIndexInt].Value = dataGridView1[i, currentRowIndexInt + 1].Value;
            dataGridView1[i, currentRowIndexInt + 1].Value = tmp;
        }
     
        dataGridView1.CurrentCell = dataGridView1[0, currentRowIndexInt + 1];
        dataGridView1.FirstDisplayedScrollingRowIndex = currentRowIndexInt + 1;
    }

    2008年3月29日 上午 04:18
  • 哈囉!chuang 前輩,感謝您!成功囉!

    小改了一下,如下:

     

    Code Snippet

    private void button1_Click(object sender, EventArgs e)
    {
        int currentRowIndexInt = this.dataGridView1.CurrentRow.Index;
        int currentColumnIndexInt = this.dataGridView1.CurrentCell.ColumnIndex;

     

        if (this.dataGridView1.CurrentRow.Index < (this.dataGridView1.Rows.Count - 2))
        {
            for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
            {
                object tmp = this.dataGridView1[i, currentRowIndexInt].Value;
                this.dataGridView1[i, currentRowIndexInt].Value = this.dataGridView1[i, currentRowIndexInt + 1].Value;
                this.dataGridView1[i, currentRowIndexInt + 1].Value = tmp;
            }

     

            this.dataGridView1.CurrentCell = dataGridView1[0, currentRowIndexInt + 1];
            this.dataGridView1.Rows[currentRowIndexInt + 1].Selected = true;
        }

    }

     

    2008年3月31日 上午 01:48