Winform基础入门(二)

l     treeView控件

l     代码生成控件

l     主菜单与上下文菜单

l     托盘的实现

1.textBox1.Update(); 使桌面快速重绘

 Stopwatch watch =new Stopwatch();

           watch.Start();

           for (int i = 0; i < 100; i++)

           {

               textBox1.Text = i.ToString();

               textBox1.Update();  

           }

           watch.Stop();

           MessageBox.Show(string.Format("耗时:{0}", watch.Elapsed.Milliseconds));

可通过创建Stopwatch的对象,调用startstop方法查看消耗时间。

2.string path =Application.StartupPath + "\\Sample Pictures\\" + i.ToString() + ".jpg"//获取图片路径

Application.StartupPath //静态属性获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

3.y表示年 M表示月 d表示日 HH表示24小时进制 m表示分 s表示秒

  DateTime.Now.ToString("mm-ss");  获得当前分和秒

DateTime.Now.ToString("yyyy-MM");  获得当前年月

以此类推。。。

4.Timer组件

 Timer组件(常用于有时间间隔发生事件的程序,如切换图片的屏幕保护)

 设定interval来设定间隔时间(要求enabled设定为true

5.treeView控件(树结构)

  该控件用于添加分层集合,每一项都是一个节点(Node),它是一个TreeNode类的对象。

   

属性:

  Nodes         用于设定每个节点,每个节点也都有该属性

  HideSelection    当控件没有焦点时,从选中节点处移除突出显示。值设为false时,移除焦点,选中项也会有灰色阴影。

   SelectedNode   获取选中项,不选中时值为null,调用treeView控件的selectedNode属性。

  1treeView1.SelectedNode.Text获取选中项文本

  2treeView1.SelectedNode.Nodes.Add(textBox1.Text);向选中的节点子集添加节点。

  3treeView1.ExpandAll(); 展开所有子节点

    

      treeView1.CollapseAll(); 折叠所有子节点

  4 treeView1.SelectedNode.Toggle(); 切换该节点集的状态(展开,或者折叠)

       treeView1.SelectedNode.Collapse();  只折叠该节点集

    treeView1.SelectedNode.ExpandAll(); 展开该节点集所有节点

    treeView1.SelectedNode.Expand();   展开该节点集(不展开孙子集)

需要先判断SelectedNode是否为空。

  5 treeView1.SelectedNode.Remove();   删除选中节点

  6在包含checkboxestreeView中,可以设定afterchecked事件,让子节点被选中时,同时选中它的所有子节点。

 private void treeView1_AfterCheck(object sender,TreeViewEventArgs e)

       {

           foreach (TreeNode tnin e.Node.Nodes)

           {

               tn.Checked = e.Node.Checked;

           }

       }

  7)设定树结构的节点图表时,需要关联imagelist组件。

 

6.其他的控件属性

checkBox控件

  Checked    设定选中状态(值为truefalse)也可以直接设定checkState属性。(uncheckedcheckedindeterminate(子项没全部选中))

GroupBox控件

 分组控件

RadioButton控件

 单选按钮

设定一组单选按钮时,用groupbox控件对其进行分组。

ProgressBar控件

进度条

属性 Maximum设定进度条的最大值,Minimum设定进度条的最小值。Value表示当前进度条的位置。

运算时,通过对Value的赋值来使进度条缓慢行进,但是要注意,运算表达式中要有double类型参与,因为int类型的数字运算,会让Value的值一直为零。参如下例子:

 void GetAnswer()

       {

 

           for (int i = 0; i <= 50000; i++)

           {

               txtShow.Text = i.ToString();

               Application.DoEvents();

               progressBar1.Value =(int)( (1.0*i / 50000) * 100);   //先用double类型运算,再用int强转

           }

       }

       private void button1_Click(object sender,EventArgs e)

       {

           Thread threadFirst = new Thread(GetAnswer);

           threadFirst.Start();

       }

 dateTimePicter 控件

 日期选择。

 hScorllBar      水平滚动条

 vScorllbar      垂直滚动条

  ToolTip        鼠标指针移动到控件上时显示的信息。

 TrackBar        单线滚动条

 WebBrowser     浏览器控件

 TabControl      选项卡控件

  

7.代码生成控件

 Winform中的每个控件都可以看做类的对象,所以我们可以通过实例类来产生控件,甚至包括它的各种事件(以委托的方式传递方法,形成事件)。

   例如: //窗体加载时生成按钮和事件

       private void Form1_Load(object sender,EventArgs e)

       {

           for (int i = 0; i < 15; i++)

           {

               //创建对象

               Button btn = newButton();

               //给属性赋值

               btn.Name = "btn" + i.ToString();

               btn.Text = "按钮" + (i+1).ToString();

               btn.Size = new Size(60, 60);

               btn.Location = new Point(50 + i % 5 * 100, 50 + i/5* 110);

               this.Controls.Add(btn);

               //传递委托生成事件

               btn.Click +=new EventHandler(MyClick);              

           }

       }

       //委托方法

       private void MyClick(object sender,EventArgs e)

       {

           Button btn=(Button)sender;

           MessageBox.Show("点击了"+btn.Text);

       }


8.主菜单与上下文菜单

MenuStrip组件            主菜单

属性:ShortcutKeys      设定每项的快捷键

ContextMenuStrip组件     上下文菜单

为每个控件设定上下文菜单,都可以设置该控件的ContextMenuStrip属性来选择。

ToolStrip组件             工具栏菜单

也可以在工具栏右键直接插入标准项。

StatusStrip组件            状态栏菜单(窗口最下边)

9.托盘(桌面右下角程序小图标)

notifyIcon组件contextMenuStrip组件配合使用,主要有单击,双击改变程序最大化最小化等事件等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值