【C#】winfromdataGridView键盘上下左右方向

来源:互联网 发布:html5欢乐斗地主源码 编辑:程序博客网 时间:2024/06/05 14:43
 /// <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);
                }
            }
        }
0 0