C# 如何在C中获取桌面应用程序中的FindControl方法

C# 如何在C中获取桌面应用程序中的FindControl方法,c#,C#,Hii 我找不到FindControl方法。这是我试图访问FindControl的事件\u CellEndEdit对象发送方DataGridViewCellEventArgs e…但我没有看到该方法…请告诉我如何访问该方法…我相信FindControl是System.Web.UI命名空间中控件类上的一个方法。在WinForms中,您不需要这样做 你想找到什么样的控制?它是网格编辑控件吗 是否使用此控件获取单元格值 更新:单元格值显示在单元格本身上,不需要在单元格下面找到控件。事件参数包含单元格本

Hii

我找不到FindControl方法。这是我试图访问FindControl的事件\u CellEndEdit对象发送方DataGridViewCellEventArgs e…但我没有看到该方法…请告诉我如何访问该方法…

我相信FindControl是System.Web.UI命名空间中控件类上的一个方法。在WinForms中,您不需要这样做

你想找到什么样的控制?它是网格编辑控件吗

是否使用此控件获取单元格值

更新:单元格值显示在单元格本身上,不需要在单元格下面找到控件。事件参数包含单元格本身、值本身或RowIndex和ColumnIndex。使用后者,您可以从网格中获取单元格并查看其.Value属性:

DataGridViewCell c = grid[colIndex, rowIndex];
请注意,网格上还有一个CellValidating Cancelable事件,听起来更适合您的需要。

FindControl方法仅适用于控件类及其子类的实例。所以你可以在表格上这样称呼它

this.FindControl(...);
编辑 关于你的评论:

_CellEndEdit事件是执行此类验证的错误位置。您通常会实现_CellValidating事件。 如果必须使用_CellEndEdit来验证输入,可以尝试使用DataGridView的EditingControl属性。如果单元格处于编辑模式,则应返回单元格的当前编辑控件。但是,可能是在编辑控件已销毁后调用了_CellEndEdit事件。 传递给_CellEndEdit的DataGridViewCellValidatingEventArgs对象允许您获取输入的值,并设置Cancel属性,可能还会出现单元格错误,以便取消更改。
您可以使用Control.ControlCollection.Find方法

i、 e:


请发布一些代码编辑:或至少描述您试图实现的目标…我想验证datagrid中的文本框…我想使用findcontrol获取单元格的值,然后验证该值以检查输入文本是否为所需格式…假设OP使用WinForms,System.Windows.Forms.Control没有FindControl方法。WPF,我不确定。我想找到datagrid中存在的文本框…是的,我想获取单元格值,这样我就可以验证输入数据是否为日期格式…但只有在获取FindControl时才可以。是否有我缺少的名称空间?CellValidating给了我datagrid的第一行和第一列的值…有吗我可以通过任何方式获取正在编辑的当前单元格的值…我正在使用rowindex和ColumnIndex获取值…您还可以帮助我检查输入字符串是否为有效的datetime。。。如果dgvBusWiseInfo.Rows[rowIndex].Cells[TripStartTime1].ValueType==typeofDateTime这是我编写的代码,但即使输入正确的输入,它也会返回false…谢谢,这应该是另一个问题,但是使用DateTime.TryParse,如果它无法解析您的日期,它将返回false。注意,这不考虑日期时间区域设置。此外,它不是DateTime类型,而是一个字符串,您可以将其转换为DateTime。我已成功验证了文本框…不需要查找控件…感谢您在正确的时间提出正确的建议:
this.Controls.Find()