Public Event EventCellValidating(e As DataGridViewCellValidatingEventArgs) '自定義事件
Public Sub StartEvent(e As DataGridViewCellValidatingEventArgs) '觸發事件程序
RaiseEvent EventCellValidating(e) '觸發事件
End Sub
問題在于這個引數:DataGridViewCellValidatingEventArgs
Dim Args1 AS DataGridViewCellValidatingEventArgs,是空值,沒有屬性也沒有方法。怎么提供給事件?
請各位高手施以援手!網上已經參考很多,不要再提供參考例子讓我琢磨,也不要給C語言,麻煩直接解決問題,可以的話,完整寫陳述句,謝謝再謝謝!
uj5u.com熱心網友回復:
即使有派生類中重寫方法: OnCellValidating,但問題仍然是這個引數:DataGridViewCellValidatingEventArgs,怎么賦值?Protected Overrides Sub OnCellValidating(e As DataGridViewCellValidatingEventArgs)
MyBase.OnCellValidating(e)
End Sub
期望回答!
uj5u.com熱心網友回復:
為什么非要去捕捉控制元件的單元格驗證事件?用bindingsource系結到datagridview就不應該去管datagridview了。直接對資料本身進行驗證。使用DataAnnotations相關方法直接對系結的基礎類進行驗證。或者使用Inotifypropertychanged,在方法里面添加你自己的驗證方法。uj5u.com熱心網友回復:
沒明白是說蝦米?就是單元格輸入后的驗證,很簡單的事情,就算是自己寫這個驗證事件,那么觸發也是很簡單的:
AddHandler 資料串列.CellValidating, AddressOf 輸入驗證
Sub 輸入驗證(sender As Object, e As DataGridViewCellValidatingEventArgs)
If e.FormattedValue = "嗯嗯" Then MessageBox.Show("確定添加?", "友情提示", MessageBoxButtons.YesNo)
End Sub
uj5u.com熱心網友回復:
很感謝回復!可是沒有得到問題本身的處理辦法。3樓給的是事件系結程序,我要的是如何觸發這個事件,例如怎樣在其它程式段通過呼叫此方法:OnCellValidating,從而觸發該事件。
2樓提供的是跳過這個問題的途徑。
......在這個網壇提了好幾次問題了,所以從一開始就預計到會有這樣的結果,可還是想再問問,怎么觸發這個DataGridView.CellValidating事件呢?
uj5u.com熱心網友回復:
目前只能采取的辦法是令 CurrentCell = DbNull.Value,從而觸發該事件。uj5u.com熱心網友回復:
不清楚思路?自定義事件的引數可以那樣寫,然而傳遞的引數如何獲取?必須的有注冊事件中獲取引數。uj5u.com熱心網友回復:
給個個人建議,不到逼不得已,不要拿datagridview當輸入器。uj5u.com熱心網友回復:
七樓,AddHandler, AddressOf 陳述句里面,事件把引數:DataGridViewCellValidatingEventArgs 提供給自定義事件(下述第2、3項),這個我明白。但是在觸發這個事件的程式里面(下述第1項),怎么提供這個引數?1. 觸發事件程式
2. 事件
3. 自定義事件處理程式
例如事件:CellEnter,系結自定義事件處理程式,而外部也可以用New DataGridViewCellEventArgs,然后直接呼叫自定義事件處理程式,但這個 DataGridViewCellValidatingEventArgs 就不知道怎樣創建。
八樓,datagridview 不就是面對用戶的輸出輸入用途的控制元件嗎?
uj5u.com熱心網友回復:
八樓的意思,應該是指在程式里面,當不是處理控制元件的時候,就不要用控制元件來介入內部程式吧!謝謝,在有更好的方法之后,會替換掉。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/36383.html
標籤:VB.NET
