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

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

簡介

在這個教學中,我們將使用 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
68會員
126內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
程式輕鬆玩 的其他內容
在C#的視窗應用程式中,右鍵選單(Context Menu)是一個方便的使用者介面元素。當中的項目可以包含各種功能,而有時我們可能需要在使用者點擊右鍵選單中的某個項目時,取得該項目的值。以下是一個簡單的教學,教你如何在C#中實現這個功能。
當我們需要在C#中批次更改資料夾中的檔案名稱時,我們可以使用一個自定義的C#類別。這個類別會讓我們指定資料夾路徑和新的檔名,然後它會遍歷資料夾中的檔案,為每個檔案生成一個新的名稱,新名稱由指定的檔名加上一個序號組成。
當您需要使用 C# 程式語言來遍歷指定資料夾並刪除指定副檔名的檔案時,這篇教學將引導您完成這個任務。這個程式將使用遞迴方法,以確保不僅刪除指定資料夾中的檔案,還將刪除其所有子資料夾中符合條件的檔案。
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
在這篇教學中,我們將會學習如何使用 C# 語言再設定的時間動作,模擬批次自動化功能。使用 System.Windows.Forms.Timer 來達到這個目的。同時,我們也將會示範如何取得目前時間的不同屬性,像是年份、日期、分鐘等。
在程式設計中,錯誤處理是一個不可或缺的部分。C#提供了強大的錯誤處理機制,讓我們能夠更有效地管理和處理程式執行中可能出現的問題。本篇文章將帶你深入了解如何在C#中捕捉與處理錯誤,確保你的程式在遇到問題時能夠優雅地回應。
在C#的視窗應用程式中,右鍵選單(Context Menu)是一個方便的使用者介面元素。當中的項目可以包含各種功能,而有時我們可能需要在使用者點擊右鍵選單中的某個項目時,取得該項目的值。以下是一個簡單的教學,教你如何在C#中實現這個功能。
當我們需要在C#中批次更改資料夾中的檔案名稱時,我們可以使用一個自定義的C#類別。這個類別會讓我們指定資料夾路徑和新的檔名,然後它會遍歷資料夾中的檔案,為每個檔案生成一個新的名稱,新名稱由指定的檔名加上一個序號組成。
當您需要使用 C# 程式語言來遍歷指定資料夾並刪除指定副檔名的檔案時,這篇教學將引導您完成這個任務。這個程式將使用遞迴方法,以確保不僅刪除指定資料夾中的檔案,還將刪除其所有子資料夾中符合條件的檔案。
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
在這篇教學中,我們將會學習如何使用 C# 語言再設定的時間動作,模擬批次自動化功能。使用 System.Windows.Forms.Timer 來達到這個目的。同時,我們也將會示範如何取得目前時間的不同屬性,像是年份、日期、分鐘等。
在程式設計中,錯誤處理是一個不可或缺的部分。C#提供了強大的錯誤處理機制,讓我們能夠更有效地管理和處理程式執行中可能出現的問題。本篇文章將帶你深入了解如何在C#中捕捉與處理錯誤,確保你的程式在遇到問題時能夠優雅地回應。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在 C# 中,非同步程式設計是一種有效提升應用性能、併發處理能力的重要技術。今天,我們將詳細介紹 C# 中的非同步核心概念:async、await、Task 和 Task<T>,說明它們的使用方式,並探討一些進階應用。最後,我們會簡單介紹一些非同步程式設計中常見的問題。 什麼是非同步程式設計?
前言 在上一集的節目中,我們介紹了《2025台灣季節性水果日曆》的冬季和春季水果。不知道您下載了嗎?今天,我們將繼續為您介紹夏季和秋季的水果。 台灣的夏季很長,有時甚至到九月都還很熱,可以說從六月到九月都是夏天。也因為地球暖化的關係,季節界線變得比較模糊,所以,我將七月到九月定為夏天,而
Thumbnail
本文介紹了臺灣的多元水果,尤其聚焦於冬季和春季的季節性水果,包括柳丁、橘子、甘蔗、芭樂等。透過《2025臺灣季節性水果日曆》,讀者可深入瞭解每季水果的特色及其健康益處。該日曆提供中、臺、英對照,有助於學習語言者瞭解臺灣的水果文化。同時,也是感謝訂閱會員的特別福利,讓大家能更輕鬆享受臺灣的水果盛宴!
Thumbnail
這篇文章深入探討王雄的故事及其未竟的愛情,並與陳奕迅的歌曲《愛情轉移》相連結。透過歌曲的歌詞,揭示愛情中的轉移心理和情感的深層回響。文章描述了王雄如何從未表達的愛中產生的情感投射,以及在失去中面對的痛苦。分析了愛情的本質、回憶的糾結以及人們在愛情中的無奈與勇氣,期待讀者重新思考情感的價值與意味。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
在開發 C# WinForms 應用程式時,有時我們想要以非侵入性的方式向使用者顯示訊息或通知,而不必打斷他們的工作流程。一種常見的方式是利用 Windows 的 NotifyIcon 類別,在右下角的系統通知區域顯示小圖示,並且在使用者單擊時顯示訊息氣球提示。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
在 C# 中,非同步程式設計是一種有效提升應用性能、併發處理能力的重要技術。今天,我們將詳細介紹 C# 中的非同步核心概念:async、await、Task 和 Task<T>,說明它們的使用方式,並探討一些進階應用。最後,我們會簡單介紹一些非同步程式設計中常見的問題。 什麼是非同步程式設計?
前言 在上一集的節目中,我們介紹了《2025台灣季節性水果日曆》的冬季和春季水果。不知道您下載了嗎?今天,我們將繼續為您介紹夏季和秋季的水果。 台灣的夏季很長,有時甚至到九月都還很熱,可以說從六月到九月都是夏天。也因為地球暖化的關係,季節界線變得比較模糊,所以,我將七月到九月定為夏天,而
Thumbnail
本文介紹了臺灣的多元水果,尤其聚焦於冬季和春季的季節性水果,包括柳丁、橘子、甘蔗、芭樂等。透過《2025臺灣季節性水果日曆》,讀者可深入瞭解每季水果的特色及其健康益處。該日曆提供中、臺、英對照,有助於學習語言者瞭解臺灣的水果文化。同時,也是感謝訂閱會員的特別福利,讓大家能更輕鬆享受臺灣的水果盛宴!
Thumbnail
這篇文章深入探討王雄的故事及其未竟的愛情,並與陳奕迅的歌曲《愛情轉移》相連結。透過歌曲的歌詞,揭示愛情中的轉移心理和情感的深層回響。文章描述了王雄如何從未表達的愛中產生的情感投射,以及在失去中面對的痛苦。分析了愛情的本質、回憶的糾結以及人們在愛情中的無奈與勇氣,期待讀者重新思考情感的價值與意味。
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
歡迎來到我們的Windows教學!在這裡,你將學習如何有效使用Windows操作系統。我們將探索各種基本操作,如文件管理、桌面設置、程式安裝和系統設置。無論你是新手還是希望深入了解Windows的使用者,我們的教學內容都能夠幫助你提升操作技能,使你在日常使用和工作中更加流暢和高效。立即加入我們,開啟
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
在開發 C# WinForms 應用程式時,有時我們想要以非侵入性的方式向使用者顯示訊息或通知,而不必打斷他們的工作流程。一種常見的方式是利用 Windows 的 NotifyIcon 類別,在右下角的系統通知區域顯示小圖示,並且在使用者單擊時顯示訊息氣球提示。