Ciao a tutti,
ho una DataGridView, rimpita con dei dati, e vorrei aggiungere una colonna che contiene dei pulsanti con immagine di sfondo.Ci sarebbe già un tipo di colonna predefinita la DataGridViewButtonColumn,ma permette solo di visualizzare dei pulsanti ma non è possibile assegnargli un immagine.
Ho provato quindi a crearmi una mia DataGridViewColumn personalizzata:
Codice PHP:
public class MiaColonna : DataGridViewColumn
{
public MiaColonna() : base()
{
this.CellTemplate = new MiaCella();
}
public override DataGridViewCell CellTemplate
{
get
{
return base.CellTemplate;
}
set
{
base.CellTemplate = value;
}
}
public class MiaCella : DataGridViewCell
{
private Button b;
public MiaCella(): base()
{
b = new Button();
this.b.Text = "Bottone di prova";
b.Image = Image.FromFile("C:\\prova.jpg");
}
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
Rectangle dimensioni = new Rectangle(cellBounds.Location.X, cellBounds.Location.Y, cellBounds.Size.Width, cellBounds.Size.Height);
b.Size = dimensioni.Size;
b.Location = dimensioni.Location;
this.DataGridView.Controls.Add(b);
}
}
}
Purtroppo mi si verifica il seguente errore :
System.FormatException: La proprietà FormattedValueType di una cella non può essere null.
Avete qualche idea!?Sto per caso cercando di fare una cosa che non si puo' fare?
:master: