[C#] WinForms 實現行事曆應用的完整教學

[C#] WinForms 實現行事曆應用的完整教學

更新於 發佈於 閱讀時間約 6 分鐘

簡介

在這個教學中,我們將使用 C# 和 WinForms 來建立一個基本的行事曆應用。我們將使用 MonthCalendar 控制元件,這是一個方便的工具,可用於顯示和選擇日期。


建立 WinForms 應用

首先,打開 Visual Studio,建立一個新的 Windows Forms 應用專案。命名你的專案,然後在表單上添加一個 MonthCalendar 控制元件。

設定事件處理

在表單的程式碼中,設定 MonthCalendar 的 DateSelected 事件處理方法,這將在使用者選取日期時觸發。

using System;
using System.Windows.Forms;

namespace CalendarApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();

// 設定事件處理方法
monthCalendar1.DateSelected += new DateRangeEventHandler(monthCalendar1_DateSelected);
}

private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
// 在這裡處理日期選取事件
DateTime selectedDate = monthCalendar1.SelectionStart;
MessageBox.Show($"選取的日期是:{selectedDate.ToShortDateString()}", "日期選取");
}
}
}

自定義功能

你可以根據實際需求添加自定義功能,例如事件提醒、工作排程、生日提醒等。以下是一個簡單的例子,將選取的日期加粗顯示:

private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
// 在這裡處理日期選取事件
DateTime selectedDate = monthCalendar1.SelectionStart;

// 加粗顯示選取的日期
monthCalendar1.AddBoldedDate(selectedDate);
monthCalendar1.UpdateBoldedDates(); // 更新顯示

MessageBox.Show($"選取的日期是:{selectedDate.ToShortDateString()}", "日期選取");
}

常用方法

這個 MonthCalendar 控制元件還提供了一些常用的方法:

  1. AddBoldedDate(DateTime date): 將指定日期標記為粗體,通常用於標記特殊事件或節日。
    monthCalendar1.AddBoldedDate(new DateTime(2024, 1, 25));
  2. RemoveBoldedDate(DateTime date): 移除先前標記的粗體日期。
    monthCalendar1.RemoveBoldedDate(new DateTime(2024, 1, 25));
  3. SetSelectionRange(DateTime startDate, DateTime endDate): 設定選取的日期範圍。
    monthCalendar1.SetSelectionRange(new DateTime(2024, 1, 1), new DateTime(2024, 1, 7));
  4. SetDate(DateTime date): 設定 MonthCalendar 的選取日期。
    monthCalendar1.SetDate(new DateTime(2024, 1, 25));
  5. SetToday(): 將當前日期設定為今天,以粗體標記。
    monthCalendar1.SetToday();
  6. SetMaxDate(DateTime maxDate) 和 SetMinDate(DateTime minDate): 分別設定 MonthCalendar 的最大和最小日期。
    monthCalendar1.SetMaxDate(new DateTime(2024, 12, 31));
    monthCalendar1.SetMinDate(new DateTime(2024, 1, 1));
  7. TodayDate: 取得或設定 MonthCalendar 控制元件中的今天的日期。
    DateTime today = monthCalendar1.TodayDate;
  8. GetMonth(int year, int month): 取得指定年月的月曆信息。
    int[,] monthDays = monthCalendar1.GetMonth(2024, 1);

結論

這個教學向你展示了如何使用 C# 和 WinForms 建立一個簡單的行事曆應用。你可以根據這個基礎,添加更多自定義功能和改進,以滿足你的特定需求。MonthCalendar 控制元件提供了豐富的方法和事件,可以應用於各種應用場景。希望這個教學對你有所幫助!

avatar-img
程式輕鬆玩
71會員
145內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言
avatar-img
留言分享你的想法!
程式輕鬆玩 的其他內容
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。
在本教學中,我們將介紹如何使用C#語言以及HtmlAgilityPack套件來爬取台灣證券交易所網站上特定股票的股價資料。
在程式設計中,我們經常會遇到需要重複執行某段程式碼的情況,例如列印星期幾、處理資料、或者檢查使用者輸入。為了有效地處理這類任務,我們可以使用迴圈。在 C# 中,最常見的迴圈包括 for 迴圈和 while 迴圈。本文將介紹這兩種迴圈的基本語法和應用場景。
在開發 Windows 應用程式時,有時會需要讓使用者能夠進行圖片的複製與貼上操作。這篇教學將會介紹如何在 C# 中實現這樣的功能。我們將使用 System.Drawing 命名空間中的一些類別來處理圖片的複製和貼上操作。
在本教學中,我們將介紹如何使用C#語言以及HtmlAgilityPack套件來爬取台灣證券交易所網站上特定股票的股價資料。
在程式設計中,我們經常會遇到需要重複執行某段程式碼的情況,例如列印星期幾、處理資料、或者檢查使用者輸入。為了有效地處理這類任務,我們可以使用迴圈。在 C# 中,最常見的迴圈包括 for 迴圈和 while 迴圈。本文將介紹這兩種迴圈的基本語法和應用場景。