Using C#
Windows Forms
;
I have a DataGridView
with a number of cells. I would like to show digits (from 1-9) in the cell. The digits should be placed under each other in a 3x3
format.
I looked around, and only ended up with a rather complex custom implementation of a richtextbox
cell.
Is there a way I can draw a custom rectangle
and then implement this as backgroundimage
of the cell or something? The cell need to be redrawn several times. So I can't just call the paint
event I guess.
Note: The cell must not be edited by the user.
I don't know if this will satisfy you, but you can use Environment.NewLine
to create simple line break inside cell.
Example:
string nl = Environment.NewLine; // new line variable
string data = "1 2 3" + nl + "4 5 6" + nl + "7 8 9";
Added later:
As Adrian said in comments - you will need to:
Set the WrapMode for the DataGridViewColumn
to DataGridViewTriState.True
Make sure you set a height for the row, or set the DataGridView's AutoSizeRowsMode
to DataGridViewAutoSizeRowsMode.AllCells
If you don't want to edit that column - you can set DataGridView.Column.ReadOnly
property to true
.
Update:
It took me a while to find this property with the above information. In VS C# 2017 the WrapMode property is located in the datagridview DefaultCellStyle
dialog.
as a supplement:
dataGridView.Columns[x].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
x = Column-Index
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With