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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...