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
Post a Comment