子窗体使用MonthCalendar显示月份

本文关键字:显示 MonthCalendar 窗体 | 更新日期: 2023-09-27 18:21:03

我想用文字而不是数字显示所选月份。Form1和Form2都是父MasterForm的子窗体。Form1有一个MonthCalendar和一个名为btnCreate的按钮。用户将选择一个月并单击按钮。之后,Form2将出现,并在Form标题上显示所选月份。

下面的代码以数字显示所选月份

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
    this.Text = "Selected Month: " + e.Start.Month;
}

这将在Form1中显示选定的月份,但我想在Form2中显示它吗?

子窗体使用MonthCalendar显示月份

e.Start是一个DateTime对象,因此您可以格式化其字符串覆盖,并可以选择传入特定的区域性。

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
    this.Text = "Selected Month: " + e.Start.ToString("MMMM", CultureInfo.InvariantCulture));
}

为了让它出现在下一个表单上,您可以更新Form2的构造函数。

private DateTime _dt
public Form2(DateTime dt)
{
    _dt = dt;
    this.Text = dt.ToString("MMMM", CultureInfo.InvariantCulture));
}

然后,当您打开该表单时,从日历中传入DateTime对象

Form2 f2 = new Form2(dtObjectFromCalendar);
f2.ShowDialog();

Form2然后可以显示如上所示的月份名称。

根据注释,您可以传递一个字符串。

public Form2(string textToDisplay)
{
    this.Text = textToDisplay;
}

然后,您可以这样调用该表单(假设您保留问题中的代码)

//this.Text because you set the value of this.Text in your question
Form2 f2 = new Form2(this.Text);
f2.ShowDialog();