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);
    }

C# MonthCalendar

转到表单中的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,它们包含所选日期的值。