フォームの特定の時点でカレンダーを表示できる必要があるクラス/関数を作成したくありません。そして、選択した日付を返します。
これは私が思いついたものです:
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);
現在、カレンダーは表示されますが、文字列は返されません。イベントで試しましたが、静的関数が機能しないためです。