程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 擴展WPF的DataGrid按方向鍵移動焦點,wpfdatagrid

擴展WPF的DataGrid按方向鍵移動焦點,wpfdatagrid

編輯:C#入門知識

擴展WPF的DataGrid按方向鍵移動焦點,wpfdatagrid


WPF的DataGrid默認的移動行為如下:

(1)當前單元格不處於編輯狀態時可使用方向鍵移動焦點。

(2)當前單元格處於編輯狀態時不可使用方向鍵移動焦點;
按Enter鍵,當前單元格退出編輯狀態,焦點向下移動一格;
按Ctrl+Enter鍵,當前單元格退出編輯狀態,焦點向上移動一格;
按Tab鍵,當前單元格退出編輯狀態,焦點向右移動一格,並進入編輯狀態;
按Shift+Tab鍵,當前單元格退出編輯狀態,焦點向左移動一格,並進入編輯狀態;

“運營管理3.0″的用戶普遍電腦操作水平低下,Office是它們操作的最多也是最智能的軟件,它們認為所有的軟件都必須是Office一樣地操作,否則就給差評,所以它們要求”運營管理”的操作方式盡量與Excel相同.

為了實現WPF的DataGrid的移動方式與Excel相同,需要重寫DataGrid的OnPreviewKeyDown事件:

 

public class ExDataGrid : DataGrid { protected override void OnPreviewKeyDown(KeyEventArgs e) { if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down) { try { base.CommitEdit(); } catch (Exception ex) { base.CancelEdit(); string mess = ex.Message; if (ex.InnerException != null) mess += "nn" + ex.InnerException.Message; MessageBox.Show(mess); } } base.OnPreviewKeyDown(e); } } View Code

 


然後在使用DataGrid的地方換成已重寫的ExDataGrid就可以了.

轉載自:http://www.yuzifu.net/index.php/2010/11/%E6%89%A9%E5%B1%95wpf%E7%9A%84datag


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved