1

我想用文字而不是数字显示选定的月份。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 中?

4

1 回答 1

1

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();
于 2013-07-05T07:58:24.787 回答