I've place my custom control into the DataGridView cell like it's discribes in this article.
But now I've find that after load form cell is displayed as simply TextBoxCell and control appears only after seting cursor to cell. As I undestand now that's happens because DataGridView reinitialize cell when setting cursor.
Is there ony way to make control visible always?
Usually you should host controls in winfors forms datagridview cells as shown here
But if you need your control to be always visible, what you can do is make a custom column inheriting from DataGridViewImageColumn. Add the control to the datagridview. Set the DefaultCellStyle.Nullvalue of the control to a bitmap of the control you want always shown on the data gridview. Then using the cellMouseEnter event you can display and reposition the control to display over the image cell. This gives the appearance that your custom control is always visible without using as much resources as creating a new instance of your control for every row added to the datagridview. This will help performance quite a bit.
Here is what I did with my custom “AddRemove” usercontrol.
looks something like this;