C#學習筆記-輸入數據判斷(int、double、string)

来源:http://www.cnblogs.com/Aries-rong/archive/2016/09/07/5849801.html
-Advertisement-
Play Games

代碼: 效果圖: ...


代碼:

  1 using System;
  2 using System.Windows.Forms;
  3 
  4 namespace CheckInput
  5 {
  6     public partial class Form1 : Form
  7     {
  8         public Form1()
  9         {
 10             InitializeComponent();
 11         }
 12 
 13         private void Sure_button_Click(object sender, EventArgs e)
 14         {
 15             
 16             if (CheckIsLegal() && CheckIsNull())
 17             {
 18                 //TODO
 19             }
 20 
 21             //just for test
 22             if (CheckIsNull()&&CheckIsLegal_test())
 23             {
 24                 //TODO
 25             }
 26         }
 27 
 28         /// <summary>
 29         /// 判斷輸入是否合法
 30         /// </summary>
 31         /// <returns></returns>
 32         private bool CheckIsLegal()
 33         {
 34             string[] SpecialString = new string[] { "/", @"\", ":", "*", "?", "<", ">", "|" };
 35             //註:反斜杠“\”是轉義字元
 36             //“\'”單引號;“\"”雙引號;“\\”反斜杠;“\0”空;“\a”警告;“\b”退格;“\f”換頁;“\n”換行;“\r”換行
 37             //註:用@ 符號加在字元串前面表示其中的轉義字元“不”被處理
 38             int tempInt = 0;
 39 
 40             for (int i = 0; i < SpecialString.Length; i++)
 41             {
 42                 if (this.Name_textBox.Text.Trim().Contains(SpecialString[i]))
 43                 {
 44                     MessageBox.Show(@"姓名不能包含下列字元:/ \ : * ? < > |");
 45                     this.Name_textBox.Select();
 46                     return false;
 47                 }
 48                 if (this.Nickname_textBox.Text.Contains(SpecialString[i]))
 49                 {
 50                     MessageBox.Show(@"昵稱不能包含下列字元:/ \ : * ? < > |");
 51                     this.Nickname_textBox.Select();
 52                     return false;
 53                 }
 54                 //TODO
 55 
 56                 //其他的輸入框同理
 57 
 58                 //TODO
 59             }
 60 
 61             //註:string輸入變成int型:1.int.TryParse;2.Convert.ToInt32();
 62             //註:int轉string:1.Convert.ToString();
 63             if (!int.TryParse(this.Age_textBox.Text, out tempInt) || tempInt < 0) 
 64             {
 65                 MessageBox.Show("年齡輸入錯誤!");
 66                 this.Age_textBox.Select();
 67                 return false;
 68             }
 69             //TODO
 70 
 71             //其他的輸入框同理
 72 
 73             //TODO
 74             else
 75             {
 76                 return true;
 77             }
 78         }
 79 
 80         /// <summary>
 81         /// 判斷輸入框是否為空
 82         /// </summary>
 83         /// <returns></returns>
 84         private bool CheckIsNull()
 85         {
 86             //Trim()刪除字元串頭部及尾部出現的空格=>這裡判斷是否為空,所以必須加上
 87             //刪除的過程為從外到內,直到碰到一個非空格的字元為止,所以不管前後有多少個連續的空格都會被刪除掉。
 88             //註:TrimStart()=>只刪除字元串的頭部的空格
 89             //註:TrimEnd()=>只刪除字元串尾部的空格
 90             if (this.Name_textBox.Text.Trim()=="")
 91             {
 92                 MessageBox.Show(@"姓名不能為空!");
 93                 this.Name_textBox.Select();
 94                 return false;
 95             }
 96             if (this.Nickname_textBox.Text.Trim() == "") 
 97             {
 98                 MessageBox.Show(@"昵稱不能為空!");
 99                 this.Nickname_textBox.Select();
100                 return false;
101             }
102             //TODO
103 
104             //其他的輸入框同理
105 
106             //TODO
107             else
108             {
109                 return true;
110             }
111         }
112 
113 
114         /// <summary>
115         /// 開始不理解 out tempInt 的作用
116         /// 順便複習一下string轉化為int的過程
117         /// </summary>
118         /// <returns></returns>
119         private bool CheckIsLegal_test()
120         {
121             int tempInt = 0;
122 
123             //註:Convert.ToInt32
124 
125             if (!int.TryParse(this.Age_textBox.Text, out tempInt) || CheckIntIsNegative(Convert.ToInt32
126                 (int.TryParse(this.Age_textBox.Text, out tempInt))))
127             {
128                 MessageBox.Show("年齡輸入錯誤!");
129                 this.Age_textBox.Select();
130                 return false;
131             }
132             //TODO
133 
134             //其他的輸入框同理
135 
136             //TODO
137             else
138             {
139                 return true;
140             }
141         }
142 
143         private bool CheckIntIsNegative(int m)
144         {
145             if (m < 0)
146             {
147                 return false;
148             }
149             else
150             {
151                 return true;
152             }
153         }
154 
155         private bool CheckDoubleIsNegative(double m)
156         {
157             if (m < 0)
158             {
159                 return false;
160             }
161             else
162             {
163                 return true;
164             }
165         }
166 
167         private void Cancel_button_Click(object sender, EventArgs e)
168         {
169             this.Close();
170         }
171     }
172 }

 


效果圖:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • kali Linux的主版本自帶的是Gnome桌面環境,安裝後使用效率太低,不知道是不是我機器配置低的原因, 在虛擬機里運行起來太慢、卡、醜啦...。所以以前都一直都在用Backbox Linux,並且backbox linux 預設的桌面環境是XFce, 所以漸漸的喜歡上了XFce,昨天無聊去官網 ...
  • 命令別名 alias cls='clear' 在shell中定義的別名僅在當前shell生命周期中有效; 別名的有效範圍:當前shell進程 unalias cls \CMD 使用命令本身 命令替換 $(pwd) , 反引號:`pwd` 把命令中某個子命令替換為其執行結果的過程 echo "The ...
  • 上一次介紹用 Xenocode Postbuild for .NET 混淆加密源代碼確保軟體安全,本篇將討論用 Eziriz .NET Reactor 混淆加密軟體源代碼,為從未用過該軟體加密的用戶分享net reactor使用方法,也就是平常說的net reactor使用教程。 還是那句話,用工具 ...
  • 註意:枚舉類型和結構體都屬於值類型。 結構體:就是一個自定義的集合,裡面可以放各種類型的元素,用法大體跟集合一樣。 一、定義的方法: struct student { public int nianling; public int fenshu; public string name; public ...
  • 自定義CheckBox樣式,mark一下,方便以後參考復用 設計介紹: 1、一般CheckBox模板太難看了,肯定要重寫其中的模板 2、模板狀態為未選中狀態和選中狀態,設置為預設未選中就好了。 預設狀態,設置邊框、透明度等 選中的話,我們可以設置√和背景。 當然如果需要點動畫的話,可以添加個Stro ...
  • 本節講述佈局,順帶加點樣式給大家看看~單純學佈局,肯定是枯燥的~哈哈 那如上界面,該如何設計呢? 1、一些佈局元素經常用到.Grid StackPanel Canvas WrapPanel等。如上這種佈局,在子元素數量未知的情況下,我們應該使用WrapPanel或者StackPanel來佈局,子元素 ...
  • ASP.NET MVC Core 的控制器可以利用視圖返回格式化結果。 ...
  • 預設情況下,ASP.NET應用程式以本機的ASPNET帳號運行,該帳號屬於普通用戶組,許可權受到一定的限制,以保障ASP.NET應用程式運行的安全。但是有時需要某個ASP.NET應用程式或者程式中的某段代碼執行需要特定許可權的操作,比如某個文件的存取,這時就需要給該程式或相應的某段代碼賦予某個帳號的許可權 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...