c# - WinForms DataGridView TextError only shows after forced refresh -


so have form datagridview getting data datatable following code (alternativemenu form, manager.values datatable).

public alternativemenu(manager m) {    initializecomponent();    manager = m;    dataview.autosizecolumnsmode = datagridviewautosizecolumnsmode.fill;    dataview.allowusertoaddrows = false;    dataview.multiselect = false;    dataview.datasource = manager.values;    valuevalidation(); } 

the valuevalidation method checks invalid values , changes cell error text , background color.

public void valuevalidation() {    foreach (datagridviewcolumn column in dataview.columns)    {       foreach (datagridviewrow row in dataview.rows)       {          validatecell(row.index, column.index);       }    } }  private void validatecell(int row, int column) {    if (!manager.validatevalue(row, dataview.columns[column].name))    {       dataview.rows[row].cells[column].errortext = "placeholder error text";       dataview.rows[row].cells[column].style.backcolor = color.salmon;    }    else    {       dataview.rows[row].cells[column].errortext = "";       dataview.rows[row].cells[column].style.backcolor = color.white;    } } 

if call valuevalidation() method button press, cells errors marked different color , error text. want happen form displayed.

i don't think datagridview control likes doing validations in constructor. try moving method call onload method instead:

protected override void onload(eventargs e) {   base.onload(e);   valuevalidation(); } 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -