我在一个表单(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),所以感谢所有的帮助。
答案 0 :(得分:0)
您可以在exportform的构造函数实例化时将其设置为传递对第一个表单的引用,然后直接引用这些属性。
所以在你的exportform的类里面
ExportForm exportForm = new ExportForm(this);
然后当你实例化它
var fromDate = _statsform.dateFromCalendar.... etc
您可以在按钮点击代码中引用统计信息中的标签
let array = [10, 20, 30, 40],
len = 8,
result = Array.from({length: len}).map((v, i) => array[i % array.length]);
console.log(result);
这里有关于构造函数的更多信息 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/constructors