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("深圳");
}
|