在表单之间传递selectionStart属性(monthCalendar)(winforms c#)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在表单之间传递selectionStart属性(monthCalendar)(winforms c#)相关的知识,希望对你有一定的参考价值。
我在一个表单(statsform)上有一个日历控件,我从另一个表单exportform调用:
这是statsform中我实例化exportform的代码:
private void export_Click(object sender, EventArgs e)
{
if (formIsHidden == 0)
{
ExportForm exportForm = new ExportForm();
exportForm.Show();
formIsHidden = 1;
}
}
每次点击时,我都会在statsform中更新日历控件中的日期:
public void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
dateFromLabel.Text = dateFromCalendar.SelectionStart.ToString("dd/MM/yyyy");
}
public void monthCalendar2_DateChanged(object sender, DateRangeEventArgs e)
{
dateToLabel.Text = dateToCalendar.SelectionStart.ToString("dd/MM/yyyy");
}
这是来自form2的代码(尝试获取selectionStart属性并使用它)
(On button click)
statsform statsform = new statsform();
string startDate = statsform.dateFromCalendar.SelectionStart.ToString("yyyy-MM-dd 00:00:00");
string endDate = statsform.dateToCalendar.SelectionStart.ToString("yyyy-MM-dd 23:59.00");
(Pass date to SQL Queries)
但是,所选日期不会传递给exportform,只有当我创建断点并检查字符串时才会传递当前日期。
是因为我正在创建表单的新实例吗?如何将表单中用户选择的日期传递给第二个表单?
statsform(创建日历) - > exportform(按钮单击事件 - 从statsform日历控件中检索selectedDate)
我的解决方案
public ExportForm(statsform parent)
{
InitializeComponent();
statsform = parent;
}
允许我使用表单的现有实例。我需要构造函数中的(this),所以感谢所有的帮助。
当您实例化exportform的构造函数以将引用传递给第一个表单时,可以在exportform的构造函数上设置一个参数,然后直接引用这些属性。
所以在你的exportform的类里面
private statsform _statsform = null;
public exportform(statsform caller) {
_statsform = caller;
}
然后当你实例化它
ExportForm exportForm = new ExportForm(this);
从按钮单击代码中,您可以引用statsform中的标签
var fromDate = _statsform.dateFromCalendar.... etc
有关构造函数的更多信息,请访问https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/constructors
以上是关于在表单之间传递selectionStart属性(monthCalendar)(winforms c#)的主要内容,如果未能解决你的问题,请参考以下文章
从 span 的 innerHTML 获取`selectionStart`