【问题标题】:Raise an event when button is clicked in windows forms在 Windows 窗体中单击按钮时引发事件
【发布时间】:2015-12-03 14:25:37
【问题描述】:

我正在从 Windows 窗体 (c#) 制作用户界面。在我的窗体中有许多名为启用的按钮(用于启用每个文本框)。我需要做的是当单击与文本框相关的按钮时启用文本框.(它们不在 groupBox 中)。如果没有在每个按钮单击的方法中手动编码,我如何以编程方式做到这一点

【问题讨论】:

  • 这有点像六个文本框的六个按钮。我想你已经正确理解了。感谢@Daneau的回复

标签: c# events event-handling


【解决方案1】:

假设您尝试将文本框的启用属性绑定到按钮,我建议您构建一个简单的自定义 userConrol。在该控件中,您将能够将按钮的逻辑绑定到 TextBox。然后,您可以将任意数量的特定 UserControl 添加到您的应用程序中,它会自动将您的按钮逻辑绑定到文本框。

【讨论】:

  • 如果我有 30 个按钮,使用该方法是否必须编写 30 个方法?,我试图做的是从一种方法捕获表单中任何按钮的状态变化
  • 使用该方法,按钮和文本框之间的逻辑将被封装在自定义用户控件中。这意味着它将像包含 TextBox 和按钮的“更大”项目,并且它们之间的逻辑已经设置。然后,使用此用户控件可以让您放置所需的任何数字,而无需在文本框和按钮之间进行附加绑定。
  • 好的,我明白了,现在我的问题是,如果用户单击 button1 警报(“button1 clicked”),是否有任何方法可以控制从一种方法单击六个按钮之一时的事情,如果用户点击 button2 警报(“button 2 clicked”)。我必须为所有可能的点击单独编码吗?
  • 这次谈话越深入,我就越不明白你的情况。如果按钮的逻辑在所有按钮上都相同并且您不想增加代码,为什么不创建一个继承自 Button 类的 CustomButtons 呢?然后使用这个。整个 Custom UserControl 概念就是基于此。由于您想复制行为,因此您创建一个包装器来包含此逻辑,然后使用该包装器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多