MonthCalendar没有';t显示在表格C#上
本文关键字:表格 显示 没有 MonthCalendar | 更新日期: 2023-09-27 18:29:19
我不想创建一个类/函数,它必须能够在表单上的给定点显示日历。然后返回选定的日期。
这就是我想到的:
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,但因为静态函数不起作用。
您需要将它作为控件添加到表单中。有关如何做到这一点的帮助,请参阅此链接:http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx
例如:
Controls.Add(calendar);
删除代码中的calender.Hide()
。并通过Controls.Add
或Parent
属性将其添加到表单中,如下所示:
//....
string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
calender.Parent = yourForm;
return dateForTextbox;
}
我认为您应该在Form
类的某个地方声明一个MonthCalendar
变量,在ShowCalendar
中使用它,而不是局部变量calendar
。