簡單實現(xiàn)C#窗體程序判斷是否閏年
利用VS2010的C#.NET能夠很簡單創(chuàng)建一個窗體。同時可以很輕松地為這個窗體布局,添加事件,下面用一個簡單的窗體程序,判斷是否閏年,來說明這個問題。同時加一個關(guān)閉事件,在用戶關(guān)閉窗體之前彈出對話框詢問用戶是否關(guān)閉此窗體?如下圖:
具體做法如下。
1、打開VS2010之后,文件->新建->項目->選擇其它語言中的->Visual C# ->Windows->Windows 窗體應(yīng)用程序
在最下方命名此項目的名稱為isLeapyear,之后點確定。
2、之后,雙擊Form1.cs,就進(jìn)入到Form1的窗體設(shè)計模式。右鍵Form1.cs點擊查看代碼,則可以進(jìn)入Form1.cs的后臺編輯模式。
這個Form1窗體,能夠像調(diào)整圖片那樣調(diào)整,在右方的工具箱,拖入如下圖的組件到窗體,Groupbox、TextBox、Label、Button。擺放到如下圖的位置。
如果找不到這個工具箱,則如下圖先點擊菜單欄上的圖標(biāo)添加。
工具箱在加載數(shù)秒內(nèi)可能會提醒沒有工具,請耐心等待。
我們把工具箱的組件拖入窗體中,未必就能一次性地拖到一個準(zhǔn)確位置,尤其是一些手殘黨。
此時可以利用工具欄上的各類尺寸與對齊工具,除了靠右端的水平、垂直居中對齊,選擇多個組件之后,水平、垂直間距相同工具之外。
還可以通過Ctrl鍵選擇兩個組件,之后,利用靠左方的使高度、寬度相同工具,頂端、底部對其工具,最終利用鼠標(biāo),不用寫任何代碼,搞出一個比較美觀的窗體。
3、布局完畢之后,我們開始對這個窗體進(jìn)行編程。
首先點擊任何組件,都會在右方顯示屬性窗口,如果不顯示屬性窗口則點擊最上方的 屬性 圖標(biāo)。
程序操作組件的表示,就是利用屬性中的 Name,比如如下圖,更新button1的Name為bt1之后,所有后臺的編程文件的命名都會自動更新,猶如Android中的R文件一樣。
在各個屬性窗口中,Groupbox的Text、Form的Text、Label的Text改成如下所示。而TextBox的TextAlign改成Center居中。
同時,為了讓我們的窗體不能夠被用戶調(diào)整大小、最大化,
在雙擊Form1之后,還要將其FormBorderStyle改成FixedDialog,同時將MaximizeBox從True改成False
雙擊任何組件能在后臺中為此組件添加最基本的事件。例如,雙擊Button1能夠在后臺添加一個Button1的處理函數(shù)。
同時點擊Form1,選擇事件按鈕,雙擊旗下的事件,則能夠添加相應(yīng)事件。
如下圖,就是為Form1窗體,添加窗體關(guān)閉事件FormClosing。
之后修改Form1.cs的代碼如下,
在Button1的點擊事件中展示了MessageBox.Show能夠彈出一個告警框,相當(dāng)于JavaScript的alert。
在Form1關(guān)閉事件中展示了一種帶有“是”、“否”按鈕的告警框的使用。相當(dāng)于JavaScript的Confirm。
之后在Button1的點擊事件利用到的正則表達(dá)式在《C#利用正則判斷輸入是否為純數(shù)字、容器類》(點擊打開鏈接)與《js利用正則表達(dá)式檢驗輸入內(nèi)容是否為網(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;//用到了正則表達(dá)式 namespace isLeapYear { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //Form1關(guān)閉事件 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否關(guān)閉程序?", "標(biāo)題欄", MessageBoxButtons.YesNo) == DialogResult.Yes) { e.Cancel = false;//確定關(guān)閉 } else { e.Cancel = true;//不關(guān)閉 } } //Button1的點擊事件 private void bt1_Click(object sender, EventArgs e) { if (new Regex("^[0-9]+$").IsMatch(textBox1.Text) || new Regex("^[-][0-9]+$").IsMatch(textBox1.Text))//利用正則表達(dá)式判斷是否輸入的是數(shù)字 { int year = int.Parse(textBox1.Text);//將textBox1的文本轉(zhuǎn)化為整形 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { MessageBox.Show("輸入的是閏年!"); } else { MessageBox.Show("輸入的不是閏年!"); } } else { MessageBox.Show("輸入的不是正常的年份!請重新輸入!"); } } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#,winform,ShowDialog,子窗體向父窗體傳值
- C#設(shè)置子窗體在主窗體中居中顯示解決方案
- C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法
- 用 C# Winform做出全透明的磨砂玻璃窗體效果代碼
- c# winform 關(guān)閉窗體時同時結(jié)束線程實現(xiàn)思路
- C# SkinEngine控件 給窗體添加皮膚的方法
- C#最簡單的關(guān)閉子窗體更新父窗體的實現(xiàn)方法
- C# Winform實現(xiàn)捕獲窗體最小化、最大化、關(guān)閉按鈕事件的方法
- C# WINFORM 強(qiáng)制讓窗體獲得焦點的方法代碼
- C# 開發(fā)圓角控件(窗體)的具體實現(xiàn)
相關(guān)文章
C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例
這篇文章主要介紹了C#中把Datatable轉(zhuǎn)換為Json的5個代碼實例,需要的朋友可以參考下2014-04-04C#執(zhí)行表達(dá)式樹(Expression Tree)的具體使用
本文將深入探討表達(dá)式樹的基本概念、創(chuàng)建方法、修改和刪除節(jié)點、查詢和遍歷技巧以及在C#中的應(yīng)用示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03C# TextBox多行文本框的字?jǐn)?shù)限制問題
最近在使用C# TextBox多行文本框的時候,發(fā)現(xiàn)了其對字?jǐn)?shù)限制的一點問題,所以總結(jié)下在使用C# TextBox多行文本框要注意的的字?jǐn)?shù)限制問題,現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12C#中比較常用的DateTime結(jié)構(gòu)的使用方法
這篇文章主要介紹了C#中比較常用的DateTime結(jié)構(gòu)的使用方法,需要的朋友可以參考下2015-11-11