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