I have a strange thing happening when I unhide some columns and then re-hide them... (read below)
Image 1 : original situation, columns are hidden, all is OK Image 2 : when columns are unhidden, all is OK - perhaps strange that the images sudenly have a gray background.
Image 3 : back to the original situation with some columns hidden => old text still shows on the datagrid on the place where the images are!
At the end of hiding/unhiding columns I added the refresh-method. Without the method, the text appears also.
....
Herstellingen_dgOverzicht.Columns["OverzichtHerstellingen_Login_Ingave_Afgehandeld"].Visible = OverzichtHerstellingen_ToonAlleKolommen.Checked;
Herstellingen_dgOverzicht.Columns["OverzichtHerstellingen_Datum_Afgehandeld"].Visible = OverzichtHerstellingen_ToonAlleKolommen.Checked;
Herstellingen_dgOverzicht.Refresh();
All columns are bound to a datasource (datatable), except for the image-columns because the image shown is computed at runtime and depends on the value of other columns.
Thanks for any input !
Update: code for adding the images:
private void Herstellingen_dgOverzicht_Inzetten_Icoontjes()
{
//Herstellingen_dgOverzicht.SuspendLayout();
Herstellingen_dgOverzicht.CellValueChanged -= Herstellingen_dgOverzicht_CellValueChanged;
foreach (DataGridViewRow r in Herstellingen_dgOverzicht.Rows)
{
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].Value = new Bitmap(1, 1);
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = new Bitmap(1, 1);
r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].Value = new Bitmap(1, 1);
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].ToolTipText = "";
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "";
r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].ToolTipText = "";
Application.DoEvents();
// Goedkeuring
if (r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() == "B") // wachten na doorgeven van bestek
{
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].Value = Resources.Euro;
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].ToolTipText = "Wachten op bestek van de leverancier";
Application.DoEvents();
}
else if (r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() == "W") // wachten op goedkeuring van de ouders
{
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].Value = Resources.unknown;
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].ToolTipText = "Wachten op antwoord van de ouders";
Application.DoEvents();
}
else if (r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() == "G") // goedgekeurd
{
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].Value = Resources.ok;
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].ToolTipText = "ok";
Application.DoEvents();
}
else if (r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() == "A") // afgekeurd
{
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].Value = Resources.nok;
r.Cells["OverzichtHerstellingen_Goedkeuring_Icoon"].ToolTipText = "niet ok";
if (r.Cells["OverzichtHerstellingen_EigendomLL"].Value.ToString() == "True")
{
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = Resources.nok;
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "niet ok";
}
Application.DoEvents();
}
else // fout -> niks inzetten
{ }
if (!string.IsNullOrEmpty(r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString()) &&
r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() != "B" && // verder invullen als er leeg laten als er niet gewacht wordt op antwoord van de ouders op een bestek
r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString() != "W") // vreemd gedrag SQL-server => kleine b komt voor op één of andere manier)
{
// Hersteld
if (string.IsNullOrEmpty(r.Cells["OverzichtHerstellingen_Laptop_Hersteld"].Value.ToString()))
{
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = Resources.unknown; r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "onbekend";
}
else if (r.Cells["OverzichtHerstellingen_Laptop_Hersteld"].Value.ToString() == "True")
{
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = Resources.ok; r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "ok";
}
else if (r.Cells["OverzichtHerstellingen_Laptop_Hersteld"].Value.ToString() == "False")
{
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = Resources.nok; r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "niet ok";
}
else
{
r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].Value = Resources.unknown; r.Cells["OverzichtHerstellingen_LaptopHersteld_Icoon"].ToolTipText = "onbekend";
}
Application.DoEvents();
}
if (!string.IsNullOrEmpty(r.Cells["OverzichtHerstellingen_GoekKeuring_Status"].Value.ToString()) &&
!string.IsNullOrEmpty(r.Cells["OverzichtHerstellingen_Laptop_Hersteld"].Value.ToString()))
{
// Afgehandeld
if (r.Cells["OverzichtHerstellingen_Laptop_Afgehandeld"].Value != null && r.Cells["OverzichtHerstellingen_Laptop_Afgehandeld"].Value.ToString() == "True")
{
r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].Value = Resources.ok; r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].ToolTipText = "ok";
}
else if (r.Cells["OverzichtHerstellingen_Laptop_Afgehandeld"].Value != null && r.Cells["OverzichtHerstellingen_Laptop_Afgehandeld"].Value.ToString() == "False")
{
r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].Value = Resources.nok; r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].ToolTipText = "niet ok";
}
else // (r.Cells["OverzichtHerstellingen_Laptop_Afgehandeld"].Value.ToString() == "False")
{
r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].Value = Resources.unknown; r.Cells["OverzichtHerstellingen_Afgewerkt_Icoon"].ToolTipText = "onbekend";
}
Application.DoEvents();
}
//Application.DoEvents();
}
Herstellingen_dgOverzicht.CellValueChanged += Herstellingen_dgOverzicht_CellValueChanged;
//Herstellingen_dgOverzicht.ResumeLayout();
}
The problem is solved !
=> datagrid.Refresh(); is OK since it is a contraction of Invalidate and Update ( Refresh doc ) : .... Forces the control to invalidate its client area and immediately redraw itself and any child controls.
Solution : I modified the resource-icons from PNG to BMP !
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.