黑马程序员技术交流社区

标题: Windows From窗体应用程序知识 [打印本页]

作者: 追溯客    时间: 2013-10-8 16:57
标题: Windows From窗体应用程序知识
1.winform:WindowsForm的简称,是.NET中用来开发Windows窗口程序的技术,无论是winform控制台程序还是ASP.NET都要调用.NET框架
2.控件:窗口上有许多元素是相似的,因此将这些元素抽象为一些类,这些类就叫做控件
       常见控件有:         
                   Label  标签
                   Button  按钮
                   TextBox 文本框
                   ListBox  下拉框
                   CheckBox 复选框
                   RadioButton 单选按钮
                   ComboBox 组合框
                   Picturebox 显示图像的容器
                  
3.控件共有的属性、方法和事件
(1)主要属性有:
    1).尺寸控制,主要有size(控制控件的高低宽窄);
    2)位置控制,主要有location(控件的位置)等;
    3)颜色和字体控制,主要有BackColor(背景颜色)、ForeColor(前景颜色)、Font(字体)等;
    4)名称控制,主要有Name(控件名字即类的实例化的字段名);
    5)文本,主要有Text(显示的文本)、Textalign(文本的对齐方式)、Textimagelation(文本与照片的关系)
    6)其它,主要有Enabled(决定该控件是否可用,true或 False)、Visible(决定控件是否可以被看见,true或false),cursor(鼠标进入的显示样子)
(2)主要方法:
    Close()关闭
    Show()显示
    Hide()隐藏
    Focus()聚焦
(3)事件:
Click:双击事件
4.TextBox:
  属性:
      MaxLength:用户能够输入的最大字符数
      Multiline:是否可以多行显示
      PasswordChar:掩码
      ReadOnly:文本框内容只读
      ScrollBars:滚动条
      WordWrap:是否自动换行
      多行文本框的的复加值:
         textBox1.AppendText(DateTime.Now.ToString()+"\n");
          //多行文本框中显示当前时间

5.PictureBox  图像显示容器
  属性:
   Image:设置显示的图片
   SizeMode:显示样式,有四个可选项
   Visible:是否显示图片(true或者false)
   Eg.页面上有一张图片,默认(visible=false)是隐藏的用户在文本框中输入年龄,点击按钮,若是年龄>18则显示图片
             string strID = txtID.Text;
            string RegexTest = @"^\d{18}$";//判断18位纯数字身份证的正则表达式
            if (Regex.IsMatch(strID, RegexTest) == true)//如果格式正确匹配成功
            {
             string strYear = strID.Substring(6, 4);//截取出生年份的字符串
             int year = Convert.ToInt32(strYear); //将string强制转换成int
             if (DateTime.Now.Year - year >= 18)//DateTime.Now.Year取当前年份
                {
                    Pic.Visible = true;  //让图片变为可视
                    return;            //退出当前方法
                }
                else
                {
                    Pic.Visible = false; //让图片隐藏
                    MessageBox.Show("年龄太小了,不能够查看");
                }
            }
            else
            {
                Pic.Visible = false;
                MessageBox.Show("身份证格式错误,应该是18位的全数字");
                return;
            }

6.ComboBox:
     属性:Items:组合框中的内容
           DropDownStyle:  DropDownList(只能选不能写)
                             DropDown(能选能改)
           Combobox.selectedIndex:选中文本在组合框中的第几项
            Combobox.selectedItem:选中文本的内容

7.eg1.拖放控件,输入姓名,点击按钮,窗口标题上显示问号
            string name = txtName.Text;//定义一个变量存储文本框中的内容
            this.Text = name + "你好!";//this表示当前类,在这里即为当前的窗口
8.登录界面,登录错误三次,程序退出(admin 8888)
   首先需要在类下面定义类字段:
         private int errorTimes = 0;
   然后:
           string userName = txtName.Text;
            string passWord = txtPass.Text;
            if (userName == "admin" && passWord == "8888")
            {
                MessageBox.Show("登陆成功");
                errorTimes = 0; //若是输出正确了,需要将错误次数清0
           }
            else
            {
                errorTimes++;
       //局部变量每次运行完毕变量的值都会被销毁,下次再运行,会重新初始化。
       //而类字段,只要是一个对象,那么只要对象不销毁,就会一直保持对象的字段值。
               if (userName != "admin")
                {
                    MessageBox.Show("用户名错误");
                }
                else
                {
                    MessageBox.Show("密码错误");
                }
                if (errorTimes>= 3)
                {
                    MessageBox.Show("登录错误次数太多,程序退出");
                    this.Close(); //关闭程序(Applocation.Exit()也是表示程序关闭)
                }
            }

9.在多行文本框中输入多行”姓名=成绩”格式的额数据,要求输出成绩最高学生的姓名和成绩
       string[] lines = txtScore.Lines;
          //利用多行文本框的lines属性,将每一行的内容存在字符串数组lines中
            string maxName = " ";
            int maxScore = -1;
            foreach (string line in lines) //读取lines数组中的每一行
            {
                string[] remove = line.Split('='); //按照”=”进行分割
                string name = remove[0] ; //”=”左边的为名字
                string strscore = remove[1];
                int score = Convert.ToInt32(strscore); //将string转换成int
                if (score> maxScore)  //若果当前行的成绩大于最大成绩,则交换
                {
                    maxName = name;
                    maxScore = score;
                }
            }
            MessageBox.Show(string.Format("最高分是{0},最高分为{1}", maxName, maxScore.ToString()));

10.简单的四则运算器
            string strNum1 = txtNum1.Text;
            string strNum2 = txtNum2.Text;
            double result;
              //考虑到除法运算的时候,肯能不是整除,所以定义为double
            int num1, num2;
               //试图转换输入的内容,若是可以转换则返回true并输出装换内容
               //若是不可以转换,则返回false
            if (int.TryParse(strNum1, out num1) == false)
            {
                MessageBox.Show("数据1格式错误");
                 //使用return只是跳出当前这个方法,不再进行下面内容不会终止程序  
                return;
            }
            if (int.TryParse(strNum2, out num2) == false)
            {
                MessageBox.Show("数据2显示错误");
                return;
            }
            switch (cb操作符.SelectedIndex)//选中内容的索引,及为第几项
            {
                case 0:  //0表示第一项,第一项为+
                    result = num1 + num2; break;
                case 1:
                    result = num1 - num2; break;
                case 2:
                    result = num1 * num2; break;
                case 3:  //第四项为/,法中规定被除数不能为0
                    if (num2 == 0)
                    {
                        txtResult.Text = "";
                        MessageBox.Show("被除数不能够为0");
                        return;
                    }
                    else
                        result = num1 / (1.0 * num2); break;
                default: throw new Exception("未知的运算符"); break;
            }
            txtResult.Text = result.ToString(); //文本框中的内容是字符串格式的

11.省市选择器
            cb市.Items.Clear(); //清空旧数据
            string 省 = Convert.ToString(cb省.SelectedItem);
             //将选中的内容转换成string
            if (省 == "湖南")   //若是选中的省=”湖南”,则向对应的cb市里添加内容
            {
                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("深圳");
            }
                  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2