WPF DataGrid實現單擊單元格直接編輯
(純新手,第一次用VS,很多不懂,歡迎指點)
目前在做一個PC軟體,需要一個多行多列資料錄入的編輯介面
DataGrid可以繫結資料來源,非常好用,但它有個特性卻很不友好:單擊先選中單元格,再點選才能編輯,無法直接改掉這個設定
折騰了好多天,多虧有位前輩大佬指點意見
原本我的思路是捕獲滑鼠點選時的座標,根據橫座標來讓相應位置的控制元件獲得焦點,但大佬直接給了個更簡單的思路:讓單擊變成雙擊
思路是簡單,但對於我這純粹的新手而言,問題還是有的
問題點一:如何觸發事件
我是從這篇英語博文學習到的:https://stackoverflow.com/questions/28168645/automatic-editing-of-wpf-datagrid-content-when-datagrid-cell-gets-focus
<DataGrid AutoGenerateColumns="False" SelectionUnit="Cell" >
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="GotFocus" Handler="myDataGridMain_GotFocus"></EventSetter>
</Style>
</DataGrid.CellStyle>
SelectionUnit=“Cell”,作用是讓單擊時選中行,直接變成選中單元格,這一步挺重要的
然後在DataGird下面新增CellStyle,來設定單元格事件
問題點二:如何單擊變雙擊
找了好幾篇其實內容都一樣的文章,最終是在這裡下載的原始碼:https://www.zhaokeli.com/article/8124.html
說實話,整篇程式碼很長,我沒細看,只是拿來就用,但用的時候出現了兩個小問題
我並不確定是因為版本更新導致的,還是原始碼敲的時候就有錯誤,但將就著改了,能用,直接附上我改後的程式碼下載連結:https://download.csdn.net/download/jdjdjdjdjdjd/10852246
沒有幣下載也沒關係,可以下載原始碼,自己修改,問題只有兩處:
一處是有兩個Point應該是System.Windows.Point(反正我改過來後就可用了),但原始碼是Drawing.Point(執行後報錯-名稱空間“System.Drawing”中不存在型別或名稱空間名“Point”);
一處是以下這個方法裡的point.x,point.y,強轉為int(原本是沒有強轉的,執行後會報錯)
public static void MoveTo(System.Windows.Point point)
{
SendMouseInput((int)point.X, (int)point.Y, 0, NativeMethods.SendMouseInputFlags.Move | NativeMethods.SendMouseInputFlags.Absolute);
}
做完以上工作,將程式碼新增到專案後,事件內一句程式碼就搞定了
private void myDataGridMain_GotFocus(object sender, RoutedEventArgs e)
{
Demo.Mouse.DoubleClick(MouseButton.Left);
}
相關文章
- EasyUI DataGrid 單元格編輯 註釋版UI
- 關於Easyui的datagrid的可編輯單元格和合並單元格UI
- Datagrid擴充套件方法onClickCell{easyui-datagrid-擴充-支援單元格編輯}套件UI
- easyui datagrid動態設定行、列、單元格不允許編輯UI
- 【專案實戰】---EasyUI DataGrid單元格合併UI
- c# datagridview選中當前單元格及單元格單擊事件C#View事件
- 【C#】【DevExpress】自定義單元格右鍵選單,去除單元格編輯時,載入系統的預設選單C#devExpress
- ElementUI表格行編輯單元格編輯支援(輸入框,選擇框)DemoUI
- [轉帖]DataGrid顯示雙層表頭,即可實現合併單元格問題
- WPF簡單動畫實現動畫
- js實現table合併相同列單元格JS
- AngularJS實現的表單編輯提交功能簡單介紹AngularJS
- WPF一個簡單的屬性編輯控制元件控制元件
- WPF DataGrid分頁功能實現程式碼
- Java Servlet 實現合併多單元格匯出ExcelJavaServletExcel
- 簡單的低開編輯器(二):實現元件拖拽元件
- 如何隱藏Excel中單元格公式且其他單元格可修改Excel公式
- Html合併單元格HTML
- WPF實現Win10漢堡選單Win10
- jQuery EasyUI datagrid實現本地分頁簡單介紹jQueryUI
- jQuery實現的拖動調整表格td單元格的大小jQuery
- 效率爆表!EasyExcel合併單元格這樣實現才是yydsExcel
- NPOI擴充套件--判斷指定單元格是否為合併單元格和輸出該單元格的行列跨度(維度)套件
- js 合併單元格的方法(使用直接呼叫資料時排列好的)JS
- 單元格資料鑽取
- vue表格合併單元格Vue
- JavaScript 遍歷td單元格JavaScript
- POI設定excel單元格Excel
- EasyExcel-合併單元格Excel
- js 表格合併單元格JS
- Html Table 合併單元格HTML
- GridView合併單元格View
- vba-單元格程式碼
- el-table自定義合併單元格後,單元格錯亂的問題
- VUE+Element UI實現簡單的表格行內編輯效果VueUI
- 超簡單整合!手把手教你實現音訊編輯能力音訊
- C#之使用RichTextBox 實現簡單的txt編輯器C#
- 普通填報表單元格實現資料二次篩選