C#中WindowsForm常见控件的运用 -- - 李晓峰

原帖地址:http://www.cnblogs.com/liyifeng/p/WF.html

1.button(曹操,贡天子以令不臣):

属性;text:我们经常可以看见将按钮命名为“登入”,在其属性面板里面编辑text即可;如下图:

              

事件:click是我们常常用到的,点击按钮发生的事件,如,弹出:你好!,在事件面板下click下就可完成,:

      

其中代码如下:

1 private void button1_Click( object sender, EventArgs e)
2 {
3 MessageBox.Show( " 欢迎你! " );
4 }

 

 

2.textBox:

其中我们在输入密码的时候会用到一个属性:passworchar,来掩饰密码:

1 private void groupBox1_Enter( object sender, EventArgs e)
2 {
3 textBox2.PasswordChar= ' * ' ;
4 }

 

2.1,RichTextBox,

                                           3.经过以上的描述我就写个连贯的控件来叙述;

3.1.一个登入面板,要求账号为:lixiaofeng,密码;6080;

     

3.1.1.进入面板点击登入按钮的代码(其中的验证涉及到验证控件errorprovider):

1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace WindowsFormsApplication1
12 {
13 public partial class Form1 : Form
14 {
15 public Form1()
16 {
17 InitializeComponent();
18 }
19
20 private void Form1_Load( object sender, EventArgs e)
21 {
22
23 }
24
25 private void button1_Click( object sender, EventArgs e)
26 {
27
28 }
29
30 private void groupBox1_Enter( object sender, EventArgs e)
31 {
32
33 }
34
35 private void button1_Click_1( object sender, EventArgs e)
36 {
37
38 // 首先要求账号输入长度大于3,其次密码为int型,所以就要写个验证代码提示,如下:
39 if (textBox1.Text == "") // 判断是否为空
40 { errorProvider1.SetError(textBox1, " 对不起,这里不能为空! " ); }
41 else
42 {
43 try
44 {
45 if (textBox1.Text.Length > 3 )
46 { errorProvider1.SetError(textBox1, "" ); }
47 else
48 { errorProvider1.SetError(textBox1, " 要求要输入3个以上的数据! " ); }
49 }
50 catch
51 { errorProvider1.SetError(textBox1, " 您的输入有问题,请重新输入! " ); }
52 }
53 if (textBox2.Text == "" )
54 { errorProvider1.SetError(textBox2, " 对不起,这里不能为空! " ); }
55 else
56 {
57 try
58 { int i = Int32.Parse(textBox2.Text.Trim()); errorProvider1.SetError(textBox2, ""); } // 判断是否输入的是int数字
59 catch
60 { errorProvider1.SetError(textBox2, " 这里只能输入数字密码! " ); }
61 }
62
63 // 满足账号为:lixiaofeng 密码是:6080 即可进入,代码如下:
64 if (textBox1.Text == " lixiaofeng " && Int32.Parse(textBox2.Text.Trim()) == 6080 )
65 { Form2 f2 = new Form2(); f2.Show(); } // 打开登入后的页面
66
67 this.AcceptButton = button1; // 默认按下回车后==点击登入按钮
68
69 }
70
71 private void textBox2_TextChanged( object sender, EventArgs e)
72 {
73 label3.Text = textBox2.Text.Trim(); // 密码翻译
74 }
75 }
76 }

 4.计算器/添加器;

计算器:

需要的控件有:imagelist/tabcontrol,

 在命名,加载图片完成后,要求选择运算功能后记录运算记录:

4.1.选项卡加载图片:

1 private void Form2_Load( object sender, EventArgs e)
2 {
3 // 首先添加当前的选项卡图标;
4 tabControl1.ImageList = imageList1;
5 tabPage1.ImageIndex = 0; tabPage2.ImageIndex = 1;

4.2.点击运算后的过程代码:

1 private void button5_Click( object sender, EventArgs e)
2 {
3 double deshu= 0 ;
4 if (textBox2.Text == "" )
5 { MessageBox.Show( " 请输入数据! ", "" , MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
6 else
7 {
8
9 if (radioButton1.Checked == true) // 选择加法功能
10 {
11 string[] fengejieshou = textBox2.Text.Split( ' + '); // 分割“+”存储
12 for ( int i = 0; i < fengejieshou.Length; i++ )
13 { deshu += Convert.ToDouble(fengejieshou[i]); } // 做加法运算
14 textBox3.Text = deshu.ToString(); // 输出结果显示
15 }
16 else // 没有选择运算功能就进行提示
17 { MessageBox.Show( " 请选择运算功能 ", "" ,MessageBoxButtons.OK,MessageBoxIcon.Asterisk ); }
18
19 }
20
21 // 将运算记录写入登记表中去:
22 // 设置其滚动条等属性;
23 listBox1.HorizontalScrollbar = true; listBox1.HorizontalScrollbar = true ;
24 // 设置其编辑属性:
25 listBox1.SelectionMode = SelectionMode.MultiExtended;
26 // 写入记录:
27 string xierujilu = string.Format( " 操作数:{0}\t计算结果是:{1} ",textBox2.Text,deshu.ToString()); // 整理数据字符串
28 listBox1.Items.Add(xierujilu ); // 写入到表中
29
30 }

4.3.添加选项卡/及文本链接功能:

 

 

对选项卡的添加/删除/清空代码:

4.4.添加:

1 private void button1_Click( object sender, EventArgs e)
2 {
3 // 手动添加选项卡代码的实现:
4 if (textBox1.Text == "" )
5 { MessageBox.Show( " 请输入新选项卡的名字! ", "" , MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
6 else
7 { tabControl1.TabPages.Add(textBox1.Text ); // 添加新选项卡
8 tabControl1.TabPages[tabControl1.TabCount- 1].ImageIndex= 2; // 向新卡添加图片
9 textBox1.Text = ""; // 清空输入信息
10 }

4.5.删除:

1 private void button2_Click( object sender, EventArgs e)
2 {
3 // 删除选项卡代码:
4 if (tabControl1.SelectedIndex == 0 || tabControl1.SelectedIndex == 1 )
5 { MessageBox.Show( " 这里系统自带的无法删除! ", "" , MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
6 else
7 { tabControl1.TabPages.Remove(tabControl1.SelectedTab); } // 删除
8 }

4.6.清空:

1 private void button3_Click( object sender, EventArgs e)
2 {
3 listView1.Items.Clear();
4 }

 

 

 4.7.超文本链接:

1 private void tabPage2_Enter( object sender, EventArgs e)
2 {
3 // 显示滚动条
4 richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
5 // 设置字体:
6 richTextBox1.SelectionFont = new Font( " 隶书 ", 12 , FontStyle.Bold);
7 // 字体颜色;
8 richTextBox1.SelectionColor = System.Drawing.Color.Red;
9 // 字体text属性
10 richTextBox1.Text = " 欢迎进入我的博客园:http://www.cnblogs.com/liyifeng/ " ;
11 }
1 private void richTextBox1_LinkClicked( object sender, LinkClickedEventArgs e)
2 {
3 System.Diagnostics.Process.Start(e.LinkText ); // 链接文本
4 }

 5.资源管理器:

 

5.1.添加节点,并添加节点图片:

1 public void Form3_Load( object sender, EventArgs e)
2 {
3 // 工具和视图,为2个根节点:
4 TreeNode t1 = treeView1.Nodes.Add( " 工具 " );
5 TreeNode t2 = treeView1.Nodes.Add( " 视图 " );
6 // 在工具节点中添加2个子节点,和编辑相应的对象:
7 TreeNode t11 = new TreeNode( " 运算器/选项卡 "); TreeNode t12 = new TreeNode( " 添加视图 " );
8 t1.Tag = " 1 "; t11.Tag = " 11 "; t12.Tag = " 12 " ;
9 t1.Nodes.Add(t11); t1.Nodes.Add(t12);
10 // 在视图中添加3个子节点:
11 TreeNode t21 = new TreeNode( " 平铺 "); TreeNode t22 = new TreeNode( " 垂直 "); TreeNode t23 = new TreeNode( " 层叠 " );
12 t2.Tag = " 2 "; t21.Tag = " 21 "; t22.Tag = " 22 "; t23.Tag = " 23 " ;
13 t2.Nodes.Add(t21); t2.Nodes.Add(t22); t2.Nodes.Add(t23);
14
15 // 添加节点的图片:
16 treeView1.ImageList = imageList1;
17 // 设置2个根节点的图片:
18 t1.ImageIndex = 1; t1.SelectedImageIndex = 1; t2.ImageIndex = 2; t2.SelectedImageIndex = 2 ;
19
20
21 }

5.2.编写双击节点后的事件:

1 private void treeView1_NodeMouseDoubleClick( object sender, TreeNodeMouseClickEventArgs e)
2 {
3 if (treeView1.SelectedNode.Tag == " 11 " )
4 { Form2 f2 = new Form2(); f2.Show(); } // 打开运算器页面
5 if (treeView1.SelectedNode.Tag == " 12 " )
6 { Form4 f4 = new Form4(); f4.Show(); }
7 if (treeView1.SelectedNode.Tag == " 21 " )
8 {
9 Form2 f2 = new Form2(); f2.MdiParent = this; Form4 f4 = new Form4(); f4.MdiParent = this ;
10 f2.Show(); f4.Show();
11 LayoutMdi(MdiLayout.TileHorizontal );
12 }
13 if (treeView1.SelectedNode.Tag == " 22 " )
14 {
15 Form2 f2 = new Form2(); f2.MdiParent = this; Form4 f4 = new Form4(); f4.MdiParent = this ;
16 f2.Show(); f4.Show();
17 LayoutMdi(MdiLayout.TileVertical );
18 }
19 if (treeView1.SelectedNode.Tag == " 23 " )
20 {
21 Form2 f2 = new Form2(); f2.MdiParent = this; Form4 f4 = new Form4(); f4.MdiParent = this ;
22 f2.Show(); f4.Show();
23 LayoutMdi(MdiLayout.Cascade );
24 }
25
26
27 }

5.3:运行图示:

6.菜单添加器:

 

6.1分组及集合的编写:

1 private void Form4_Load( object sender, EventArgs e)
2 {
3 // 创建2个分组:
4 listView1.Groups.Add( new ListViewGroup( " 相片 " ,HorizontalAlignment.Left ));
5 listView1.Groups.Add( new ListViewGroup( " 其他 " ,HorizontalAlignment.Left ));
6 // 创建2个图标集合:
7 listView1.Items.Add( " 我的书法 "); listView1.Items.Add( " 相片 " );
8 // 将其添加都分组为:相片组里:
9 listView1.Items[ 0].Group=listView1.Groups[ 0];listView1.Items[ 1].Group=listView1.Groups[ 0 ];
10
11 // 将杂集放到,其他里面
12 listView1.Items.Add( " 杂集 " );
13 listView1.Items[ 2].Group=listView1.Groups[ 1 ];
14
15 // 设置视图样式:
16 listView1.View = View.Tile;
17 // 向视图中添加图片:
18 listView1.LargeImageList = imageList1;
19 listView1.Items[ 0].ImageIndex = 0; listView1.Items[ 1].ImageIndex = 1; listView1.Items[ 2].ImageIndex = 2 ;
20
21
22 }

6.2添加/删除/清空,的功能:

1 private void button1_Click( object sender, EventArgs e)
2 {
3 // 以下为添加信息的同时添加视图的图片:
4 if (textBox1.Text == "" )
5 { MessageBox.Show( " 请输入要添加的命名 " ); }
6 else
7 { listView1.Items.Add(textBox1.Text.Trim());
8 listView1.Items[listView1.Items.Count- 1].Group=listView1.Groups[ 1 ];
9 listView1.Items[listView1.Items.Count - 1].ImageIndex = 3 ;
10 textBox1.Text = "" ;
11 }
12 }
13
14 private void button2_Click( object sender, EventArgs e)
15 {
16 listView1.Items.RemoveAt(listView1.SelectedItems[ 0 ].Index );
17 }
18
19 private void button3_Click( object sender, EventArgs e)
20 {
21 listView1.Items.Clear();
22 }

6.3,进入:管控页面的代码:

1 private void button4_Click( object sender, EventArgs e)
2 {
3 Form5 f5 = new Form5(); f5.Show();
4 }

 

 

7.管控全局页面:

 

其代码如下:

1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace WindowsFormsApplication1
12 {
13 public partial class Form5 : Form
14 {
15 public Form5()
16 {
17 InitializeComponent();
18 }
19
20 private void tabPage1_Click( object sender, EventArgs e)
21 {
22
23 }
24
25 private void tabPage2_Click( object sender, EventArgs e)
26 {
27 // 设置闹钟的属性:
28 timer1.Interval = 1000 ;
29 }
30
31 private void button1_Click( object sender, EventArgs e)
32 {
33 if (button1.Text == " 开始 " )
34 { timer1.Enabled = true; button1.Text = " 停止 " ; }
35 else
36 { timer1.Enabled = false; button1.Text = " 开始 "; textBox1.Text = " 时间到了! " ; }
37 }
38
39 private void timer1_Tick( object sender, EventArgs e)
40 {
41 textBox1.Text = DateTime.Now.ToString();
42 }
43
44 private void groupBox2_Enter( object sender, EventArgs e)
45 {
46 progressBar1.Minimum = 0; progressBar1.Maximum = 899; progressBar1.Step = 1 ;
47
48 }
49
50 private void button2_Click( object sender, EventArgs e)
51 {
52 for ( int i = 0; i < 900; i++ )
53 { progressBar1.PerformStep();
54 textBox2.Text = " 进度是: " + progressBar1.Value.ToString();
55 }
56 }
57
58 private void groupBox3_Enter( object sender, EventArgs e)
59 {
60 // 显示的时间为自定义的时间格式:
61 dateTimePicker1.Format = DateTimePickerFormat.Custom;
62 dateTimePicker1.CustomFormat = " yy-MM-dd HH:mm " ;
63
64 // 设置月历的颜色属性:
65 monthCalendar1.TitleBackColor = System.Drawing.Color.Red;
66 monthCalendar1.TrailingForeColor = System.Drawing.Color.Black;
67 monthCalendar1.TitleForeColor = System.Drawing.Color.Green;
68 // 显示周期:
69 monthCalendar1.ShowWeekNumbers = true ;
70 // 突出特定的日期;
71 DateTime shijian_shuru = new DateTime( 2013, 6, 28 );
72 monthCalendar1.AddAnnuallyBoldedDate(shijian_shuru);
73 // 显示2列月历:
74 monthCalendar1.CalendarDimensions = new Size( 2, 1 );
75 }
76
77 private void 看时间ToolStripMenuItem_Click( object sender, EventArgs e)
78 {
79 Form1 f1 = new Form1();f1.Show();
80 }
81
82 private void 运算器ToolStripMenuItem_Click( object sender, EventArgs e)
83 {
84 Form2 f2 = new Form2(); f2.Show();
85 }
86
87 private void 资源管理器ToolStripMenuItem_Click( object sender, EventArgs e)
88 {
89 Form3 f3 = new Form3(); f3.Show();
90 }
91
92 private void 添加视图ToolStripMenuItem_Click( object sender, EventArgs e)
93 {
94 Form4 f4 = new Form4(); f4.Show();
95 }
96
97 private void toolStripStatusLabel1_Click( object sender, EventArgs e)
98 {
99
100 }
101
102 private void toolStripStatusLabel1_LocationChanged( object sender, EventArgs e)
103 {
104 toolStripStatusLabel1.Text = DateTime.Now.ToString(); // 显示时间
105 }
106
107 }
108 }

运行:

 O(∩_∩)O谢谢!

 2013.6.28

  李晓峰


本文链接:http://www.cnblogs.com/liyifeng/p/WF.html,转载请注明。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值