我想用单词而不是数字显示选定的月份。 Form1和Form2都是父MasterForm的子形式。 Form1有一个MonthCalendar和一个名为btnCreate的按钮。用户将选择一个月并单击按钮。之后,Form2将出现并在表单标题上显示所选月份。
以下代码以数字
显示所选月份private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
this.Text = "Selected Month: " + e.Start.Month;
}
这将在Form1中显示所选月份,但我想让它以Form2显示?
答案 0 :(得分: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();