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,但因为静态函数不起作用。

MonthCalendar没有';t显示在表格C#上

您需要将它作为控件添加到表单中。有关如何做到这一点的帮助,请参阅此链接:http://msdn.microsoft.com/en-us/library/kyt0fzt1.aspx

例如:

Controls.Add(calendar);

删除代码中的calender.Hide()。并通过Controls.AddParent属性将其添加到表单中,如下所示:

   //....
    string dateForTextbox = dateValue.ToString("dd-MM-yyyy");
    calender.Parent = yourForm;
    return dateForTextbox;
   }

我认为您应该在Form类的某个地方声明一个MonthCalendar变量,在ShowCalendar中使用它,而不是局部变量calendar