1. 程式人生 > >【C#】winfromdataGridView鍵盤上下左右方向

【C#】winfromdataGridView鍵盤上下左右方向

 /// <summary>
        /// dataGridView鍵盤上下左右時獲取對應選中的資料,
        /// 呼叫:this.tbSheet_No.Text = all.dgvSX(dataGridView1, e);
        /// tbSheet_No.Refresh();
        /// </summary>
        /// <param name="dgv"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        public string  dgvSX(DataGridView dgv, KeyEventArgs e)
        {            
            string code = "";
            int dgvRows = dgv.RowCount;
            if (dgvRows > 0)
            {
                int row = dgv.CurrentRow.Index;//獲取上次當前選中的
                int rowww = dgv.Rows.Count - 1; //獲取最後一行
                
                if (e.KeyCode == Keys.Down) //鍵盤按方向下
                {
                    if (row == rowww)
                    {
                        code = dgv.Rows[row].Cells["單據編號"].Value.ToString();//獲取之前的                
                    }
                    else
                    {
                        code = dgv.Rows[row + 1].Cells["單據編號"].Value.ToString();//獲取之前的                                   
                    }
                }
                if (e.KeyCode == Keys.Up)//鍵盤按方向上
                {
                    if (row - 1 < 0)
                    {
                        code = dgv.Rows[0].Cells["單據編號"].Value.ToString();//獲取之前的                                         
                    }
                    else
                    {
                        code = dgv.Rows[row - 1].Cells["單據編號"].Value.ToString();//獲取之前的                                 
                    }
                }
            }
            return code;
        }


private void dgwCustomer_KeyDown(object sender, KeyEventArgs e)
        {
//dataGridView鍵盤上下左右方向,以下是有2個dataGridView
int row = this.dgwCustomer.CurrentRow.Index;//獲取上次當前選中的
            int rowww = dgwCustomer.Rows.Count - 1; //獲取最後一行
            string khbh = "";
            if (e.KeyCode == Keys.Down ) //鍵盤按方向下
            {
                if (row== rowww)
                {
                    khbh = this.dgwCustomer.Rows[row].Cells[1].Value.ToString();//獲取之前的                
                    showMin(khbh);
                }
                else
                {
                    khbh = this.dgwCustomer.Rows[row + 1].Cells[1].Value.ToString();//獲取之前的                
                    showMin(khbh);
                }


            }
            if (e.KeyCode == Keys.Up)//鍵盤按方向上
            {
                if (row - 1 <0)
                {
                    khbh = this.dgwCustomer.Rows[0].Cells[1].Value.ToString();//獲取之前的                
                    showMin(khbh);
                }
                else
                {
                    khbh = this.dgwCustomer.Rows[row - 1].Cells[1].Value.ToString();//獲取之前的                
                    showMin(khbh);
                }
            }
        }