1、如圖實現整數計算器 ComboBox控制項: Items屬性:添加集合中的項。 TextBox: 對TextBox的輸入文本有限制: 1)只能輸入數值型(整數和小數); 2)小數點不能開頭,小數只能輸入一位; 3)不滿足要求的輸入統一不接受。 實現方法 使用TextBox的KeyPress事件:在 ...
1、如圖實現整數計算器
ComboBox控制項:
Items屬性:添加集合中的項。
this.comoper.Items.AddRange(new object[] { "+", "-", "x", "/"});
TextBox:
對TextBox的輸入文本有限制:
1)只能輸入數值型(整數和小數);
2)小數點不能開頭,小數只能輸入一位;
3)不滿足要求的輸入統一不接受。
實現方法
使用TextBox的KeyPress事件:在控制項有焦點的情況下按下鍵時發生。
KeyChar屬性獲取或設置與按下的鍵對應的字元。
KeyPress 事件不能由非字元鍵引發;但是非字元鍵能夠引發 KeyDown 和 KeyUp 事件。
使用 KeyChar 屬性採樣運行時的鍵擊,以及使用或修改常用鍵擊的一個子集。
若要僅在窗體級別處理鍵盤事件而不允許其他控制項接收鍵盤事件,請將窗體的 KeyPress 事件處理方法中的 KeyPressEventArgs. Handled 屬性設置為true。
//處理鍵盤按鍵盤事件,當前時間焦點在TextBox控制項級別 private void textnum1_KeyPress(object sender, KeyPressEventArgs e) { //通過sender得到觸發該事件的控制項 TextBox currtextbox = sender as TextBox; if (e.KeyChar<'0' || e.KeyChar>'9') { //用戶輸入的不是數字 e.Handled = true; }
//用戶是否輸入了退格鍵 if (e.KeyChar==8) { e.Handled = false; } //讓用戶輸入小數點,判斷是不是小數點 if(e.KeyChar==46) { //只讓用戶輸入一個小數點,檢測當前文本框是否有小數點
//報告指定 Unicode 字元或字元串在此實例中的第一個匹配項的從零開始的索引。 如果未在此實例中找到該字元或字元串,則此方法返回 -1。
if (currtextbox.Text.IndexOf(".") == -1) {
//小數點不能在第一位,註意字元是單個單個輸入的
//SelectionStart獲取或設置文本框中當前輸入的文本起始點。 if(currtextbox.SelectionStart>0) { e.Handled = false; } } } }
using System; using System.Windows.Forms; public class Form1: Form { public Form1() { // Create a TextBox control. TextBox tb = new TextBox(); this.Controls.Add(tb); tb.KeyPress += new KeyPressEventHandler(keypressed); } private void keypressed(Object o, KeyPressEventArgs e) { // The keypressed method uses the KeyChar property to check // whether the ENTER key is pressed. // If the ENTER key is pressed, the Handled property is set to true, // to indicate the event is handled. if (e.KeyChar == (char)Keys.Return) { e.Handled = true; } } public static void Main() { Application.Run(new Form1()); } }
2、圖片查看器
身份證號碼的校正:
private bool CheckCardId(string id) { //校驗位的權值或編碼值 int[] wQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; string checkWei = "10X98765432"; string number17 = id.Substring(0, 17); string number18 = id.Substring(17); int sum=0; for(int i=0;i<17;i++) { sum+=Convert.ToInt32(number17[i].ToString())* wQuan[i]; //char類型不能直接轉換成整形(實際轉換成對應的ascii),先tostring在轉換 } int mod = sum % 11; string result = checkWei[mod].ToString(); if(number18.Equals(result,StringComparison.OrdinalIgnoreCase)) { return false; } else { return true; } } private void btnView_Click(object sender, EventArgs e) { //身份證可能是15位或者18位 //15位身份證組號:省(20)市(2)縣(2)年(2)月(2)日(2)+3序列號(奇男偶女) //18位身份證:第一:出生年前加上19 第二點:第18位校驗位,從前17位計算而來 string id = pidid.Text; int age = 0; int year = 0; if (id.Length == 15) { year = Convert.ToInt32(id.Substring(6, 2)) + 1900; } else if (id.Length == 18) { if(!this.CheckCardId(id)) { MessageBox.Show("身份證輸入有誤,請檢查"); return; } year = Convert.ToInt32(id.Substring(6, 4)); } else { MessageBox.Show("身份證長度輸入有誤,請重新輸入"); return; } age = DateTime.Now.Year - year; if (age >= 18) { pic.Visible = true; } else { MessageBox.Show("你太小了,回家看動畫片吧"); } }
3、訪問網址
WebBrowser類:使用戶可以在窗體內導航網頁。
private void button1_Click(object sender, EventArgs e) { webBrowser1.Navigate(button1.Text); }
4.樹形控制項增刪該查
TreeView:
與上圖對應的方法:
private void button1_Click(object sender, EventArgs e) { treeView1.HideSelection = false; MessageBox.Show(treeView1.SelectedNode.Text); } private void button2_Click(object sender, EventArgs e) { //MessageBox.Show("根節點節點的數量{0}", treeView1.Nodes.Count.ToString()); //treeView1.Nodes.Add("add");根節點添加 //treeView1.Nodes[0].Nodes[0].Nodes.Add("王曉東");//添加到一級節點下 if(treeView1.SelectedNode!=null) { treeView1.SelectedNode.Nodes.Add(textBox1.Text); } if(treeView1.SelectedNode==null) { treeView1.Nodes.Add(textBox1.Text); } } private void TreeView_Load(object sender, EventArgs e) { treeView1.ExpandAll();//展開節點 treeView1.Nodes[0].ImageIndex = 3; } private void button4_Click(object sender, EventArgs e) { if(treeView1.SelectedNode!=null) { //treeView1.SelectedNode.ExpandAll();//展開當前節點下的所有節點 treeView1.SelectedNode.Expand();//展開當前節點下的所子節點 } } private void button3_Click(object sender, EventArgs e) { if (treeView1.SelectedNode != null) { treeView1.SelectedNode.Collapse();//關閉當前節點下的所有節點 } } private void button5_Click(object sender, EventArgs e) { treeView1.SelectedNode.Remove(); } private void button6_Click(object sender, EventArgs e) { string str="選中的語言"; foreach(TreeNode tn in treeView1.Nodes[0].Nodes[0].Nodes) { if(tn.Checked==true) { str = str + tn.Text; } } MessageBox.Show(str); } private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { foreach (TreeNode tn in e.Node.Nodes) { tn.Checked = e.Node.Checked; } }View Code