C# MonthCalendar未显示在表格C中
我不想创建一个类/函数,它必须能够在窗体上的给定点显示日历。 然后返回所选日期 这就是我想到的:C# MonthCalendar未显示在表格C中,c#,windows,winforms,monthcalendar,C#,Windows,Winforms,Monthcalendar,我不想创建一个类/函数,它必须能够在窗体上的给定点显示日历。 然后返回所选日期 这就是我想到的: public static string ShowCalendar(Point locatieCalender) { MonthCalendar calender = new MonthCalendar(); calender.Location = locatieCalender; calender.Show(); calend
public static string ShowCalendar(Point locatieCalender)
{
MonthCalendar calender = new MonthCalendar();
calender.Location = locatieCalender;
calender.Show();
calender.Visible = true;
string date = calender.SelectionRange.Start.ToShortDateString();
DateTime dateValue = DateTime.Parse(date);
string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
calender.Hide();
return dateForTextbox;
}
问题是日历不会显示在表单上
如果能帮上忙,我将不胜感激。
提前谢谢
好的,现在我将函数更改为:
public static string ShowCalendar(Point locatieCalender, Form F1)
{
MonthCalendar calender = new MonthCalendar();
calender.Location = locatieCalender;
calender.Show();
calender.Visible = true;
calender.BringToFront();
calender.Parent = F1;
string date = calender.SelectionRange.Start.ToShortDateString();
DateTime dateValue = DateTime.Parse(date);
string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
//calender.Hide();
return dateForTextbox;
}
以及函数调用:
string dateForTextbox = HelpFunction.ShowCalendar(calenderLocatie, this);
现在日历显示,但没有返回字符串。
我尝试过使用event,但由于静态函数无法工作。您需要将其作为控件添加到表单中。有关如何执行此操作的帮助,请参阅此链接: 例如:
Controls.Add(calendar);
移除日历。隐藏在代码中。并通过控件将其添加到窗体中。添加或父属性,如下所示:
//....
string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
calender.Parent = yourForm;
return dateForTextbox;
}
我认为您应该在表单类的某个位置声明MonthCalendar变量,在ShowCalendar中使用它,而不是在本地变量calendar中使用它。为什么要调用calendar.Hide?我希望calendar在选择日期后隐藏。但是由于静态方法,它不能与dateselected事件一起工作。也许我也应该提到这个方法与我想显示它的表单在不同的类中。@user2726516好的,用表单引用替换它。