2010-07-13 77 views
1

斐伊川如何讓FindControl方法在桌面應用程序在C#

蔭無法找到的FindControl Method.this是事件「_CellEndEdit(對象發件人,DataGridViewCellEventArgs E)」,其中蔭試圖訪問的FindControl .. ..但我看不到那種方法...請告訴我如何訪問此方法...

+0

請張貼一些代碼(編輯:或至少描述你想要達到的目標......)。 – 2010-07-13 10:35:29

+0

我想驗證datagrid中的文本框....我想使用findcontrol獲取單元格的值,然後驗證該值以檢查輸入文本是否處於所需格式..... – 2010-07-13 10:44:26

回答

0

我相信FindControlSystem.Web.UI命名空間中Control類的一種方法。在WinForms中,你不需要這個。

你試圖找到什麼控制?它是一個網格編輯控件嗎?

你會使用此控件來獲取單元格值嗎?

更新:單元格值呈現在單元格本身上,不需要找到控制單元格下的單元格。事件參數包含單元本身,值本身或RowIndexColumnIndex。使用後,你可以從電網的細胞並審查其.Value屬性:

DataGridViewCell c = grid[colIndex, rowIndex]; 

還要注意有上聽起來更適合您的需求的電網CellValidating撤消事件。

+0

我想查找數據網格中存在的文本框....是的我想獲得單元格的值,以便我可以驗證,如果輸入數據是日期格式....但只有當我得到FindControl :(是否有任何命名空間哪Iam丟失了嗎? – 2010-07-13 10:43:22

+0

CellValidating給了我datagrid的第一行和第一列的值...有沒有什麼辦法可以獲得當前正在編輯的單元格的值.... – 2010-07-13 10:53:19

+0

它應該給你剛剛編輯的單元格 – 2010-07-13 10:59:07

0

FindControl方法僅適用於Control類及其後代的實例。所以,你可以把它叫做形式像

this.FindControl(...); 

編輯
至於您的評論:

  1. _CellEndEdit事件是放錯了地方做這樣的驗證。您通常會執行_CellValidating事件。
  2. 如果您需要必須使用_CellEndEdit驗證輸入,您可以嘗試使用DataGridViewEditingControl屬性。如果單元格處於編輯模式,這應該返回單元格的當前編輯控件。但是,之後可能事件被稱爲編輯控件已被銷燬。
  3. 傳遞給_CellEndEditDataGridViewCellValidatingEventArgs對象允許您獲取輸入的值並設置Cancel屬性(可能伴隨着單元格錯誤),以便取消更改。
+0

假設OP使用WinForms,'System.Windows.Forms.Control'沒有'FindControl'方法。 WPF,我不確定。 – 2010-07-13 10:38:34

+0

我也試過這個......但它沒有工作... FindControl方法沒有出現.... – 2010-07-13 10:40:22

相關問題