我不想创建一个必须能够在表单上的给定点显示日历的类/函数。 然后返回所选日期。
这就是我提出的:
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);
现在日历显示但没有返回任何字符串。 我已尝试过事件,但由于静态功能不起作用。
答案 0 :(得分:1)
您需要将其作为控件添加到表单中。有关如何执行此操作的帮助,请参阅此链接: http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx
例如:
Controls.Add(calendar);
答案 1 :(得分:1)
删除代码中的calender.Hide()
。并通过Controls.Add
或Parent
属性将其添加到您的表单中,如下所示:
//....
string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
calender.Parent = yourForm;
return dateForTextbox;
}
我认为您应该在MonthCalendar
课程的某处声明Form
变量,在ShowCalendar
而不是本地变量calendar
中使用它。