2010-07-13 36 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

相关问题