黑马程序员-WinForm入门

原创 2012年03月26日 09:33:54

                     ----------------------   Windows Phone 7手机开发.Net培训    期待与您交流! ----------------------


一、认识窗口中的控件

常见控件:添加移动删除缩放

button

checkbox

label

rediobutton

textbox

 

控件名字name,Text,value属性

事件!!!!!!!!!!!

事件处理方法

控件的名字(控件的实例对象名)

 

好莱坞原则

Don’t call me,I will call you!

把事件的代码放到那,一旦事件发生就会调用

把计算的程序放到button中,

 

Messagebox.show()

Int.tryparse()

Convert.ToStringi3)对比i3.ToString()

1Messagebox.Show(“广告”);正确是方法

Messagebox.Show=广告”;错误不是属性

2、拖的控件无意间点住了,生成时报错不要直接删

 

Winform中属性方法的设置!!!!!!!!!!!

二、实例:

实例1:第一个winform程序

问好

String name=textBox.Text

This.Text=string.Format(“{0}你好”,name)

Textbox.Hide();//隐藏

 

例子2:加法计算器:

           string str1 = textBox1.Text;   

           string str2 = textBox2.Text;   

           int i1, i2;   

           if (!int.TryParse(str1, out i1))   

           //out传参前,可以不对参数初始化,out的函数会清空变量,即使变量已经赋值也不行;   

           //ref传参前,必须对参数初始化   

           {   

                MessageBox.Show("第一个数不是合法的整数");   

                return;//不要忘了return    

           }   

           if (!int.TryParse(str2, out i2))   

           {   

                MessageBox.Show("第二个数不是合法的整数");    

                return;   

           }   

           int i3 = i1 + i2;   

           textBox4.Text = Convert.ToString(i3);   

       }   

}   

 

实例3:输入邮箱地址,分别输出用户名和密码

 

先判断是否是合法的email地址,再split截取?

还是先截取然后判断是否得到的数据合法?选择此

private void button1_Click(object sender,EventArgs e)   

       {   

           string email = textBox1.Text;   

           string[] strs = email.Split('@');   

           if (strs.Length != 2)   

           {   

                MessageBox.Show("非法的email地址!");   

                return;//不要忘了return   

           }   

           textBox2.Text = strs[0];   

           textBox3.Text = strs[1];   

       }   

 

例子4:累加

private void button1_Click(object sender,EventArgs e)   

       {   

           string s1 = textBox1.Text;   

           string s2 = textBox2.Text;   

           int i1, i2;   

           if (int.TryParse(s1, out i1) == false)   

           {   

                MessageBox.Show("数字1格式错误!");   

                return;   

           }   

            if (int.TryParse(s2, out i2) ==false)   

           {   

                MessageBox.Show("数字2格式错误!");   

                return;   

           }   

           if (i1 >= i2)   

           {   

                MessageBox.Show("第二个数要大于第一个数!");    //排错技巧:在出错的地方设置断点,看相关变量的值

                return;   

           }   

           int sum = 0;   

           for (int i = i1; i <= i2; i++)   

           {   

                sum = sum + i;   

           }   

           textBox3.Text = Convert.ToString(sum);   

       }   

  

例子5:图片隐藏

private void button1_Click(object sender,EventArgs e)   

       {   

pictureBox1.Visible = true; 

           string 身份证号 =textBox1.Text;   

           //校验是否是合法的身份证号   

           string strYear = 身份证号.Substring(6,4); //18位身份证号 

           int year = Convert.ToInt32(strYear);  //Int.TryParse (str Year ,out year)也行

           if ((DateTime.Now.Year - year >= 18)==true)

           {

               pictureBox1.Visible = true;    // pictureBox1. Hide=false;貌似也行

                return;   

           }   

           else  

           {   

                MessageBox.Show("你的年龄小于18,无法查看!");   

                //pictureBox1.Visible =false;   

                return;   

           }    

       }   

 

例子6: 滚动窗口

Substring的用法:

 

private void button1_Click(object sender,EventArgs e)   

       {   

           string str = textBox1.Text;   

           char first = str[0];   

           string 剩下 =str.Substring(1);   

           textBox1.Text = 剩下 + first;   

       }   

  

       private void button2_Click(object sender, EventArgs e)   

       {   

           string str = textBox1.Text;   

           char last = str[4];   

           string 剩下 =str.Substring(0,4);   

           textBox1.Text = last+剩下;   

       }   

 

控件一定要起一个有意义的名字!!!!!!!!!

 

实例7:练习文本框使用:

 

登陆界面登陆错误三次退出程序,假设用户名密码是admin

888888,不区分大小写,

局部变量和类变量

退出程序 Close( )或者Application.Exit()

 

namespace 登录界面 

{   

   public partial class Form1 : Form   

   {    

       private int ErrorTimes = 0;//错误的次数    //局部变量和类变量的区别

                              //想让程序记住设置了一个字段,类的变量

                              //form1的字段窗口是form1的对象

                              //只要窗口不关闭,字段的值就会一直保持

       public Form1()   

       {   

           InitializeComponent();   

       }   

  

       private void button1_Click(object sender, EventArgs e)    //附加时间

       {   

           //方法一    AppendText只会附加不取值

           textBox4.AppendText(DateTime.Now.ToString()+"\n"); 

           //方法二    方法二的缺点:取值再附加回去影响速度

           //textBox4.Text = textBox4.Text+ DateTime.Now.ToString() +"\n" ;   

       }   

  

       private void login_Click(object sender, EventArgs e)    //登录

       {   

           string username = txtUserName.Text.Trim();//Trim忽略大小写   

           string password = txtPassWord.Text;   

           if (username.Equals("admin",StringComparison.   

                OrdinalIgnoreCase) &&password == "888888")   

           {   

                MessageBox.Show("登录成功!");   

           }   

           else  

           {    //局部变量每次运行完毕变量的值都会被销毁,下次在运行会重新初始化,而类字段,只要是一个对象,那么只要对象不销毁,就会一直保持对象的字段

                

                 //int i=0;//局部变量每次触发该程序就赋为0

//i++;

//if(i>=3)

                ErrorTimes++;//错误次数加1   

                if (ErrorTimes > 3)   

                {   

                    MessageBox.Show("错误次数过多,程序即将退出!");   

                    Application.Exit();    //重新打开再次错误三次涉及数据库

                }   

                MessageBox.Show("登录失败!");   

           }   

       }   

修改密码界面有旧密码新密码重复新密码,假设就密码为888888两次输入的新旧密码必须和旧密码不一样,并且两次输入的新密码必须一致

 

       private void btnModify_Click(object sender, EventArgs e)  //修改密码 

       {   

           string oldpassword = txtUserName.Text;//取旧密码   

            string newpassword = txtPassWord.Text;   

           string newpassword2 = newPassWord2.Text;   

           if (oldpassword != "888888")   

           {   

                MessageBox.Show("旧密码错误!");   

                return;   

           }   

           if (newpassword != newpassword2)   

           {   

                MessageBox.Show("两次输入的新密码不一致!"); //为什么会有再次确认密码?校验!  

                return;   

           }   

           if (newpassword == oldpassword)   

           {    

                MessageBox.Show("旧密码和新密码不能一样!");   

                return;   

           }   

           MessageBox.Show("修改成功!");   

       }   

   }   

}   

实例8、统计成绩

在多行文本框中输入多行“姓名=密码”格式的数据,

要求输出成绩的最高的学生的姓名和成绩

       private void btnResult_Click(object sender, EventArgs e)   

       {   

           //string s = txt成绩.Text;   //方法1:按照\r\n进行split   

           string[] lines=txt成绩.Lines;//方法2   

           string maxName="";   

           int maxScore = -1;   

           foreach (string line in lines)    //遍历数组

           {   

                string[] strs =line.Split('=');   

                string name=strs[0];   

                string strScore=strs[1];   

                int score =Convert.ToInt32(strScore);   

               if (score >maxScore)   

                {   

                    maxName = name;   

                    maxScore = score;   

                }   

           }   

           MessageBox.Show(string.Format("{0}是第一名,成绩是{1}",   

                maxName,maxScore));   

       }   

 

如果连入数据库就是从数据库中取值,或者从文件中读取

实例9、下拉列表

(如何禁止用户编辑只限于选的内容不能输入)

ComboBox

简单的四则运算

private void comboBox1_Click(object sender, EventArgs e)   

       {   

           MessageBox.Show(Convert.ToString   

                (comboBox1.SelectedIndex));//第几项   

           MessageBox.Show(Convert.ToString   

               (comboBox1.SelectedValue));   

           MessageBox.Show(Convert.ToString   

                (comboBox1.SelectedText));//数据库中将用到   

           MessageBox.Show(Convert.ToString   

                (comboBox1.SelectedItem));//选中的项的内容   

       }   

       private void comboBox1_SelectedIndexChanged(objectsender, EventArgs e)   

       {   

           MessageBox.Show(Convert.ToString(comboBox1.SelectedItem));   

       }   

  

       private void btnResult_Click(object sender, EventArgs e)   

       {   

           string str1 = txtNumber1.Text;   

           string str2 = txtNumber2.Text;   

           int i1 = Convert.ToInt32(str1);   

           int i2 = Convert.ToInt32(str2);   

           int result;   

  // 选中项的序号,没有任何选中的时候是-1,否则是选中的序号(从0开始)

           switch (cb操作符.SelectedIndex)    //响应选择改变事件

           {   

                case 0://+   

                    result = i1 + i2;   

                    break;   

                case 1://-   

                    result = i1 - i2;   

                    break;   

                case 2://*   

                    result = i1 * i2;   

                    break;   

               case 3:// /   

                    if (i2 == 0)   

                    {   

                        MessageBox.Show("0不能为除数!");   

                        return;   

                    }   

                    result = i1 / i2;   

                   break;   

                default:   

                    throw new Exception("未知的运算符");   

           }   

           txtResult.Text = Convert.ToString(result);   

       }   

实例10、省市选择   

   SelectedIndex练习

     private void cb省_SelectedIndexChanged(object sender,EventArgs e)  //只是值的设定

       {   

           cb市.Items.Clear();//清空旧数据!!!!    

           string 省 =Convert.ToString(cb省.SelectedItem);   

           if(省=="山东")                

{   

                cb市.Items.Add("潍坊");   

                cb市.Items.Add("临沂");   

                cb市.Items.Add("青岛");   

           }   

           if (省 == "河南")   

           {   

                cb市.Items.Add("郑州");   

                cb市.Items.Add("三门峡");   

                cb市.Items.Add("洛阳");   

           }   

           if (省 == "湖南")   

           {   

                cb市.Items.Add("长沙");   

                cb市.Items.Add("衡阳");   

                cb市.Items.Add("邵阳");   

           }   

       }   

   }   

如果连入数据库就是从数据库中取值,或者从文件中读取

 

 

                     ----------------------   Windows Phone 7手机开发.Net培训    期待与您交流! ----------------------

 

                                     详情请查看:http://edu.csdn.net/heima

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员-WinForm(Windows程序)

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- Windows程序: 1、...

黑马程序员--学习winForm小结

----------------------Windows Phone 7手机开发、.Net培训、期待与您交流!------------------ 通过对控制台应用程序和窗体应用程序(winF...

黑马程序员--WinForm基本控件2

------------------ Windows Phones 7手机开发、.Net培训、期待与您交流! ---------------------- 1、属性、事件 既然WinForm有面向...

黑马程序员_winform和wpf学习

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- ----------------...
  • aipeng
  • aipeng
  • 2014-07-22 00:35
  • 1378

黑马程序员--Winform(一)

------------------ Windows Phones 7手机开发、.Net培训、期待与您交流! ---------------------- ComboBox控件   Items...

黑马程序员--WinForm进阶自学总结

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ---------------------- 计算两个数的和、累加器 ...

【黑马程序员】用winform做的简单计算器和Email地址分析器

一.简单计算器。 1.      功能:首先打开程序,出现窗口 输入名字后按确定按钮,出现主窗口 之前输入的名字出现在标题栏,然后输入第一个数和第二个数,点击相应的运...

黑马程序员--Winform知识点

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------   ComboBox      1:只允许选择,不能自己输入:修改DropDownStyle...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)