有幾個步驟,這個整齊地嵌入您自定義用戶控件到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