1. 程式人生 > >Devexpress GridView控制Enter鍵時向下移動

Devexpress GridView控制Enter鍵時向下移動

        /// <summary>
        /// 控制Enter鍵時向下移動
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gridView1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {

                int rowHandle = gridView1.FocusedRowHandle;
                if (gridView1.FocusedColumn.Caption == null) return;
                string coloumnName = gridView1.FocusedColumn.Caption;
                if (coloumnName.Contains("入倉碼"))//指定的列
                {
                    rowHandle = rowHandle + 1;
                    if (rowHandle >= gridView1.RowCount)
                    {
                        if (Convert.ToInt32(coloumnName.Substring(3))*2 >= Convert.ToInt32(spinCol.Text))
                        {
                            SetFocuse(gridView1, 0, coloumnName);
                        }
                        else
                        {
                            SetFocuse(gridView1, 0, coloumnName.Substring(0, 3) + (Convert.ToInt32(coloumnName.Substring(3)) + 1));
                        }

                    }
                    else
                    {
                        SetFocuse(gridView1, rowHandle, coloumnName);
                    }
                }
            }
        }
        /// <summary>
        /// 設定某單元格獲得焦點
        /// </summary>
        /// <param name="view"></param>
        /// <param name="rowHandle"></param>
        /// <param name="columnName"></param>
        private void SetFocuse(GridView view, Int32 rowHandle, string columnName)
        {
            view.Focus();
            view.FocusedRowHandle = rowHandle;
            view.FocusedColumn = view.Columns[columnName];
            view.ShowEditor();
        }