c# - 带有嵌入式 MonthCalendar 问题的 UserControl

标签 c# winforms events user-controls monthcalendar

我希望有人能帮助我。我在 C# 中创建了一个用于 Winform 的用户控件。该控件包含各种控件,包括 monthCalendar 控件,但是 monthCalendar 控件是我的问题所在。

我希望包含我的用户控件的父窗体在触发用户控件内的 monthCalendar 的 dateSelected 事件时触发一段代码以使用 linq 查询数据库。这个想法是用户控件不应该知道事物的数据访问端,以便用户控件可以在其他项目中使用。

我希望有一种方法可以使 dateSelected 事件对父表单可用;我已经通过其他控件的点击事件等成功完成了这项工作,但我似乎无法为 monthCalendar 工作,因为 DateSelected 使用 DateRangeEventHandler 而不是标准的 EventHandler。

我希望这是清楚的,因为我已经解决了这个问题,所以我不确定什么有意义了:)任何关于我如何编写代码的帮助或建议将不胜感激。

最佳答案

与处理按钮事件的方式相同。

在您的 UserControl 中,它看起来像这样:

public event DateRangeEventHandler DateChanged {
  add { monthCalendar1.DateChanged += value; }
  remove { monthCalendar1.DateChanged -= value; }
}

然后在你的表单中,像所有带有事件的控件一样:

userControl11.DateChanged += userControl11_DateChanged;

void userControl11_DateChanged(object sender, DateRangeEventArgs e) {
  // do something...
}

关于c# - 带有嵌入式 MonthCalendar 问题的 UserControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20378805/

相关文章:

c++ - 在托管 C++ GUI 中通过另一个事件结束/中断/切换一个事件

wpf - 如何将 UIElement 添加到 Windows 窗体应用程序?

android - 在android中更改变量的监听器

javascript - <input type ="date"> - jQuery 捕获事件清除日期

新的 Google Analytics (analytics.js) 设置中未跟踪事件

c# - 错误 CS0234 : The type or namespace name 'Script' does not exist in the namespace 'System.Web'

c# - 如何在 C# 中隐藏/取消隐藏进程?

c# - 执行停止无一异常(exception)

c# - 如何在 C# 和 C++ 代码之间共享常量?

c# - 如何更改MetroFramework的metrolabel的字体大小?