C# MonthCalendar
本文关键字:MonthCalendar | 更新日期: 2023-09-27 18:00:23
我正在使用VS2010工具箱中的monthCalendar控件,在尝试使日历日期"可选择"时遇到困难。所选日期将与用户输入的其余输入一起存储在一个数组中。我觉得,经过几个小时的搜索和查找与我的问题无关的结果,在这里发帖将是最好的解决方案。感谢您的帮助。
int currentIndex;
int arraySize = 0;
Meeting[] meetingArray = new Meeting[100];
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
e.Start.ToShortDateString();
}
private void calendarSaveChangesButton_Click(object sender, EventArgs e)
{
Meeting m = new Meeting();
m.title = textBoxTitle.Text;
m.location = textBoxLocation.Text;
m.startTime = textBoxStartTime.Text;
m.endTime = textBoxEndTime.Text;
m.notes = notesTextBox.Text;
meetingArray[arraySize] = m;
currentIndex = arraySize;
arraySize++;
meetingListBox.Enabled = true;
textBoxTitle.Text = "";
textBoxLocation.Text = "";
textBoxStartTime.Text = "";
textBoxEndTime.Text = "";
notesTextBox.Text = "";
meetingListBox.Items.Add(m);
}
转到表单中的monthCalendar并右键单击。选择"属性"。然后单击事件并双击DateSelected。
这将由VS2010:生成
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
}
在该方法中,使用e.Start.ToShortDateString()
捕获选定的日期,并将其分配给数组的适当索引。
在评论/新发布的代码中更新您的问题:
根据我对你的项目所知,这可能是对你最好的解决方案(而不必完全重组一切)。添加另一个文本框(将其命名为dateBox)。然后在DateSelected方法中添加以下代码:
dateBox.Text = e.Start.ToShortDateString();
然后在您发布的Click方法中(假设您的Meeting类具有某种Date属性)添加以下代码:
m.Date = dateBox.Text;
更新
或者(更简单地说,我不知道为什么我以前没有建议这样做),您可以在名为dateStr的表单中定义一个全局string
,并使用它来保存会议日期的信息,直到您单击"保存更改",然后将其分配给m.Date
。这将是一个比创建另一个文本框(这可能是你无论如何都要避免的)简单得多的解决方案。
MonthCalendar
控件有几个属性您应该能够访问:SelectionRange、SelectionStart和SelectionEnd,它们包含所选日期的值。