有几个步骤,这个整齐地嵌入您自定义用户控件到DataGridView的作为编辑该网格中单元格使用的控件。
首先,你需要写一个从您的自定义控制和实现IDataGridViewEditingControl继承的类。这给你一个封装你的自定义控件的DataGridViewEditingControl类。把它叫做CustomDataGridViewEditingControl
这个接口上的一些关键方法需要完成; * EditingControlFormattingValue将需要返回代表你的值。 * EditingControlWantsInputKey将控制你想要什么特殊的键击允许或禁止
一旦你在地方有这个CustomDataGridViewEditingControl,封装自定义控件,您需要创建另一个类,它继承DataGridViewTextBoxCell。将其称为CustomDataGridViewCell。
这是代表在它您的自定义控制细胞的类。设置一个模块级变量作为CustomDataGridViewEditingControl
private MyCustomGridViewEditingControl _editControl;
然后,覆盖的实例:
InitializeEditingControl - 设置你的自定义控制需要任何默认值。通常你首先需要调用base.initialiseEditingControl来传入覆盖方法接收到的参数。
值类型 - 返回的数据类型定制控件代表如返回typeof(DateTime)
EditType - 返回编辑控件的类型,例如返回的typeof(MyCustomControl)
DefaultNewRowValue如果你需要每次在DataGridView请求(插入)新的编辑行
提供一个默认值编辑控制器接下来你需要哟使用本重写DataGridViewCell(CustomDataGridViewCell)类作为您正在使用的列的CellTemplate属性。我已经实现了自定义的DataGridViewColumns来控制过去,但这可能比您想要/需要去的更进一步。 (如果你想要在很多网格中使用自定义控件,那么你可以这样做)
为此,创建一个从DataGridViewTextBoxColumn继承的类,并将其CellTemplate属性设置为您的实例CustomDataGridViewCell
这很令人困惑,因为很多术语和类有相似的名称 - 希望这可以提供帮助。
总结: 1)创建一个CustomDataGridViewEditingControl - 从您的自定义用户控件继承,但实现IDataGridViewEditingControl
2)创建CustomDataGridViewCell - 这用作其编辑CustomDataGridViewEditingControl(步骤1)控制。
3)使用作为的DataGridViewColumn
希望这是够清楚的CellTemplate您CustomDataGridViewCell(步骤2)...
你或许应该确认这是否是ASP.Net或的WinForms,等等。 – LarsTech
它的一个winfirm应用程序.... – KoolKabin