How to use a function for every C# WinForm instead of pasting -
protected override bool processcmdkey(ref message msg, keys keydata) { { if (keydata == keys.escape) this.close(); return base.processcmdkey(ref msg, keydata); } }
i discovered snippet close windows form esc. want implement every windows form. try create new abstract class inherit form , windows form inherit 1 . doesn't work way .
abstract class absform: form { protected override bool processcmdkey(ref message msg, keys keydata) { { if (keydata == keys.escape) this.close(); return base.processcmdkey(ref msg, keydata); } } } public partial class hoadonbansach : absform { public hoadonbansach() { initializecomponent(); }
thanks reading :)
i suggest not doing in form instead implement imessagefilter , add using application.addmessagefilter. following:
public class closewindowbehavior : imessagefilter { const int wm_keydown = 0x100; const int vk_escape = 0x1b; bool imessagefilter.prefiltermessage(ref message m) { if (m.msg == wm_keydown && (int)m.wparam == vk_escape) { if (form.activeform != null) { form.activeform.close(); } return true; } return false; } } application.addmessagefilter(new closewindowbehavior());
Comments
Post a Comment