Win 表单计算器:按钮 0 - 9 用于执行重复任务的事件处理程序
我有一个看起来像典型计算器的 win 表单 UI。 当然,我不想为每个数字按钮(0-9)重写相同的逻辑。 我希望能够知道单击了哪个按钮,以便我可以根据它的文本属性执行计算。 我是否应该创建一个接受按钮对象作为参数的方法来促进代码重用? 有没有更好的办法? 我想听听更多终身 Win Form 应用程序开发人员将如何处理这个问题。 我试图将我的逻辑排除在用户界面之外。
谢谢!
I have a win form UI that looks like a typical calculator. Naturally I do not want to rewrite the same logic for every single numeric button(0-9). I want to be able to know which button was clicked so I can perform calculations based on it's text property. Should I just make a method that accepts the button object as a parameter to promote code reuse? Is there a better way? I would like to hear how more tenured Win Form app devs would handle this. I am attempting to keep my logic out of the UI.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
事件处理程序的典型签名是
void EventHandler(object sender, EventArgs e)
。 其中重要的部分是对象发送者
。 这是触发事件的对象。 对于Button
的单击事件,发送者将是该Button
。The typical signature of an event handler is
void EventHandler(object sender, EventArgs e)
. The important part there is theobject sender
. This is the object that fired the event. In the case of aButton
's click event, the sender will be thatButton
.当指定事件处理程序时,您可以注册相同的函数来处理多个事件(如果在 VS.Net 中,请转到属性,选择事件部分(闪电按钮),单击下拉菜单以单击)。 这样,您将编写一个事件处理函数来处理所有按钮。
示例 (C#) 如果按钮创建和事件注册是在代码中完成的:
When specifying the event handler, you can register the same function to handle multiple events (if in VS.Net, go to properties, select the events section (lightning button), click on the drop down for Click). This way you will write one event handler function to handle all the buttons.
Example (C#) if button creation and event registration are done in code: