c# - Is it ok practice to use a static class to collect common event handlers? -
c# - Is it ok practice to use a static class to collect common event handlers? -
in windows forms app, there things want various controls of same type on different forms upon events. example, want single click on datagridviewcell textbox-type , not read automatically come in edit mode. simple event handler code, in case on form datagridview called dgvparms, is:
private void dgvparms_cellclick(object sender, datagridviewcelleventargs e) { datagridviewcell c = dgvparms[e.columnindex, e.rowindex]; if (!c.readonly && c datagridviewtextboxcell) { dgvparms.currentcell = c; dgvparms.beginedit(true); } } i move method static class, commonevents, , on individual forms' load handlers assign static method definition respective datagridviews' cellclick event
this.dgvparms.cellclick += commonevents.dgveditoncellclick; is acceptable or practice? or preffered maintain event handler logic each consuming form's code? of course of study in between (but redundant) defining local event handlers phone call mutual method, such as
this.dgvparms.cellclick += (a, b) => commonevents.dgveditoncellclick(a, b);
this looks absolutely fine me, although of course of study have alter code utilize sender argument locate datagridview raised event:
private void dgvparms_cellclick(object sender, datagridviewcelleventargs e) { datagridview dgvparams = sender datagridview; datagridviewcell c = dgvparms[e.columnindex, e.rowindex]; if (!c.readonly && c datagridviewtextboxcell) { dgvparms.currentcell = c; dgvparms.beginedit(true); } } the general approach of changing or adding behaviour command handling , reacting events called attached behaviour. typically used in wpf, there nil wrong using in winforms too.
c# winforms events
Comments
Post a Comment