簡單實現(xiàn)C#窗體程序判斷是否閏年
利用VS2010的C#.NET能夠很簡單創(chuàng)建一個窗體。同時可以很輕松地為這個窗體布局,添加事件,下面用一個簡單的窗體程序,判斷是否閏年,來說明這個問題。同時加一個關閉事件,在用戶關閉窗體之前彈出對話框詢問用戶是否關閉此窗體?如下圖:
具體做法如下。
1、打開VS2010之后,文件->新建->項目->選擇其它語言中的->Visual C# ->Windows->Windows 窗體應用程序
在最下方命名此項目的名稱為isLeapyear,之后點確定。
2、之后,雙擊Form1.cs,就進入到Form1的窗體設計模式。右鍵Form1.cs點擊查看代碼,則可以進入Form1.cs的后臺編輯模式。
這個Form1窗體,能夠像調整圖片那樣調整,在右方的工具箱,拖入如下圖的組件到窗體,Groupbox、TextBox、Label、Button。擺放到如下圖的位置。
如果找不到這個工具箱,則如下圖先點擊菜單欄上的圖標添加。
工具箱在加載數(shù)秒內可能會提醒沒有工具,請耐心等待。
我們把工具箱的組件拖入窗體中,未必就能一次性地拖到一個準確位置,尤其是一些手殘黨。
此時可以利用工具欄上的各類尺寸與對齊工具,除了靠右端的水平、垂直居中對齊,選擇多個組件之后,水平、垂直間距相同工具之外。
還可以通過Ctrl鍵選擇兩個組件,之后,利用靠左方的使高度、寬度相同工具,頂端、底部對其工具,最終利用鼠標,不用寫任何代碼,搞出一個比較美觀的窗體。
3、布局完畢之后,我們開始對這個窗體進行編程。
首先點擊任何組件,都會在右方顯示屬性窗口,如果不顯示屬性窗口則點擊最上方的 屬性 圖標。
程序操作組件的表示,就是利用屬性中的 Name,比如如下圖,更新button1的Name為bt1之后,所有后臺的編程文件的命名都會自動更新,猶如Android中的R文件一樣。
在各個屬性窗口中,Groupbox的Text、Form的Text、Label的Text改成如下所示。而TextBox的TextAlign改成Center居中。
同時,為了讓我們的窗體不能夠被用戶調整大小、最大化,
在雙擊Form1之后,還要將其FormBorderStyle改成FixedDialog,同時將MaximizeBox從True改成False
雙擊任何組件能在后臺中為此組件添加最基本的事件。例如,雙擊Button1能夠在后臺添加一個Button1的處理函數(shù)。
同時點擊Form1,選擇事件按鈕,雙擊旗下的事件,則能夠添加相應事件。
如下圖,就是為Form1窗體,添加窗體關閉事件FormClosing。
之后修改Form1.cs的代碼如下,
在Button1的點擊事件中展示了MessageBox.Show能夠彈出一個告警框,相當于JavaScript的alert。
在Form1關閉事件中展示了一種帶有“是”、“否”按鈕的告警框的使用。相當于JavaScript的Confirm。
之后在Button1的點擊事件利用到的正則表達式在《C#利用正則判斷輸入是否為純數(shù)字、容器類》(點擊打開鏈接)與《js利用正則表達式檢驗輸入內容是否為網(wǎng)址》已經(jīng)說過了。主要判斷用戶輸入的是否是一個數(shù)字,而不是其它。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions;//用到了正則表達式 namespace isLeapYear { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //Form1關閉事件 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否關閉程序?", "標題欄", MessageBoxButtons.YesNo) == DialogResult.Yes) { e.Cancel = false;//確定關閉 } else { e.Cancel = true;//不關閉 } } //Button1的點擊事件 private void bt1_Click(object sender, EventArgs e) { if (new Regex("^[0-9]+$").IsMatch(textBox1.Text) || new Regex("^[-][0-9]+$").IsMatch(textBox1.Text))//利用正則表達式判斷是否輸入的是數(shù)字 { int year = int.Parse(textBox1.Text);//將textBox1的文本轉化為整形 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { MessageBox.Show("輸入的是閏年!"); } else { MessageBox.Show("輸入的不是閏年!"); } } else { MessageBox.Show("輸入的不是正常的年份!請重新輸入!"); } } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C#執(zhí)行表達式樹(Expression Tree)的具體使用
本文將深入探討表達式樹的基本概念、創(chuàng)建方法、修改和刪除節(jié)點、查詢和遍歷技巧以及在C#中的應用示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03