winform基礎控件-例子學習


1、如圖實現整數計算器

ComboBox控件:

Items屬性:添加集合中的項。

this.comoper.Items.AddRange(new object[] {
            "+",
            "-",
            "x",
            "/"});

TextBox:

對TextBox的輸入文本有限制:

1)只能輸入數值型(整數和小數);

2)小數點不能開頭,小數只能輸入一位;

3)不滿足要求的輸入統一不接受。

實現方法

使用TextBox的KeyPress事件:在控件有焦點的情況下按下鍵時發生。

KeyChar屬性獲取或設置與按下的鍵對應的字符。

KeyPress 事件不能由非字符鍵引發;但是非字符鍵能夠引發 KeyDownKeyUp 事件。

使用 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM