C# 使用MonthCalendar的子到子窗体显示月份

C# 使用MonthCalendar的子到子窗体显示月份,c#,winforms,monthcalendar,C#,Winforms,Monthcalendar,我想用文字而不是数字显示所选月份。Form1和Form2都是父母版的子版。Form1有一个MonthCalendar和一个名为btnCreate的按钮。用户将选择一个月并单击按钮。之后,Form2将出现,并在表单标题上显示所选月份 下面的代码以数字显示所选月份 private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { this.Text = "Selected Month: " + e.S

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

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

private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
    this.Text = "Selected Month: " + e.Start.Month;
}
它将在Form1中显示所选月份,但我希望在Form2中显示它?

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

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;
}
然后可以这样调用该表单(假设您在问题中保留了代码)

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

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;
}
然后可以这样调用该表单(假设您在问题中保留了代码)


我得到一个错误:“CultureInfo”这个名称在当前上下文中不存在。在代码的顶部,使用System.Globalization添加这个
作为一个快速提示,如果您遇到该错误,VS可以自动尝试使用语句为您添加该
。单击出现错误的类(本例中为
CultureInfo
)后,按
CTRL
+
),将弹出一个选项框,您可以在其中使用
语句添加正确的
。您需要将该数据传递到Form2构造函数(您必须自己在Form2类中添加该构造函数)。因此,打开Form2.cs,您将看到
public Form2()
。这是现有的默认ctor。您可以添加一个新对象(如果要强制添加对象,也可以替换此对象)。新代码看起来像我添加的第二个代码。您可以将其更改为
string
并传入
this.Text
字符串,而不是
DateTime
对象。我将使用字符串选项更新代码。出现错误:“dtObjectFromCalendar”名称在当前日历中不存在context@deepz-这只是一个例子。您需要将其替换为日历中的对象。我已经更新了代码,改为接受字符串,应该使用您问题中的现有代码。我收到错误:当前上下文中不存在名称“CultureInfo”。在代码顶部,使用System.Globalization添加此
作为一个快速提示,如果您遇到该错误,VS可以自动尝试使用
语句为您添加该
。单击出现错误的类(本例中为
CultureInfo
)后,按
CTRL
+
),将弹出一个选项框,您可以在其中使用
语句添加正确的
。您需要将该数据传递到Form2构造函数(您必须自己在Form2类中添加该构造函数)。因此,打开Form2.cs,您将看到
public Form2()
。这是现有的默认ctor。您可以添加一个新对象(如果要强制添加对象,也可以替换此对象)。新代码看起来像我添加的第二个代码。您可以将其更改为
string
并传入
this.Text
字符串,而不是
DateTime
对象。我将使用字符串选项更新代码。出现错误:“dtObjectFromCalendar”名称在当前日历中不存在context@deepz-这只是一个例子。您需要将其替换为日历中的对象。我已经更新了代码,改为接受字符串,并且应该使用您问题中的现有代码。