翻譯|其它|編輯:郝浩|2004-01-12 21:04:00.000|閱讀 1423 次
概述:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
如果綁定了datagrid,在datagrid中對數據進行更改后,點擊窗體中的toolbar按鈕進行保存時,最后輸入的那個數據,如果焦點沒有移開,在保存的時候就得不到提交,只有移開焦點的時候才能提交!
在csdn的貼子上搜索了很久,發現很多人都是建議不用toolbar,而是用button控件,網友covis的解釋是“用帶SELECTED屬性的控件提交數據即可??赡苣阌肨OOLBAR的按鈕或其它沒有SELECTED屬性的控件提交數據的。因為他不能被選中,所以他不能接受焦點,一般的按鈕或控件可以將其它控件的焦點轉移到自己身上。從這里去考慮。”原文在://search.csdn.net/expert/topic/52/5201/2003/4/21/1688615.htm
但是由于筆者所有的toolbar都已經做好了,再更改起來麻煩也不美觀,能不能找到其它方法來實現呢?
經過一些摸索,發現了如下的方法可以實現:
Public Sub SaveData()
'檢查當前焦點是否在datagrid上,是就切換單元格,并提交更改。
If Me.ActiveControl.Parent.GetType Is GetType(DataGrid) Then
Dim dg As DataGrid = CType(Me.ActiveControl.Parent, DataGrid)
ChangeCurrentCell(dg)
Me.BindingContext(dg.DataSource).EndCurrentEdit()
End If
.....save代碼
End Sub
Public Function ChangeCurrentCell(ByVal dg As DataGrid) As Boolean
Try
Dim temp As DataGridCell = dg.CurrentCell
dg.CurrentCell = New DataGridCell(temp.RowNumber, 0)
dg.CurrentCell = temp
Return True
Catch ex As Exception
Return False
End Try
End Function
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn