六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 2078|回复: 0

WinForm 应用程序开发

[复制链接]
 楼主| 发表于 2012-9-7 11:26:28 | 显示全部楼层 |阅读模式
WinForm 应用程序开发
文/天神
文件->新建项目->Windows应用程序,项目名称,保存位置。
在项目解决方案管理器中选中Form窗体,按以下步骤熟悉基本操作:
1.Form窗体:按钮弹出消息框事件
public partial class Form1 : Form
    { public Form1()
        { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
        { MessageBox.Show("你好,欢迎光临天神的博客!");}
     }

2.MDI窗体:创建MDI父窗体方法
(1)选中Form1窗体,属性窗口中,设置IsMDIContainer为“True”(即该窗体为子窗体的MDI父窗体)
(2)拖一个MenuStrip“菜单”组件到Form1中,将第一个主菜单设置为“文件”,在下拉菜单中增加“打开Form2子窗体”和“关闭”两项。

3.MDI窗体:创建MDI子窗体方法
(1)在项目解决方案管理器上右击项目添加新建项,添加一个Windows窗体,Form2。
(2)双击“打开Form2子窗体”菜单按钮触发事件:
private void 打开Form2子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
     {   Form2 frm2 = new Form2();
         frm2.MdiParent = this;
         frm2.Show();
     }

4.MDI窗体:确定活动的MDI子窗体(不允许连续单击弹出Form2子窗体)
双击“打开Form2子窗体”菜单按钮触发事件:
private void 打开Form2子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{   foreach (Form childFrm in this.MdiChildren)  //this表示这个窗体(父窗体)
      { if (childFrm.Name == "Form2")
         { if (childFrm.WindowState == FormWindowState.Minimized) //如果该子窗体最小化
            {   childFrm.WindowState = FormWindowState.Normal;  //把它变为正常大小窗口
                   childFrm.Activate(); //把该子窗口设为活动窗口
                   return;
                }
           else
               {   childFrm.Activate();  //其他正常大小或最大化的窗口直接将它设置为活动窗口
                   return;
                }
           }
        }
         Form2 frm2 = new Form2();
         frm2.MdiParent = this;
         frm2.Show();
     }

5.MDI窗体:在父窗体中排列MDI子窗体方法
在"打开Form2子窗体"菜单按钮触发事件代码中的最后加入下面一句话:
this.LayoutMdi(MdiLayout.TileHorizontal);  //TileHorizontal表示平铺排列(不设为活动窗口时连续按该菜单后该子窗体平铺排列);此外,MdiLayout的属性还有:TileVertical(垂直平铺)、ArrangeIcons(子图标层叠排列)、Cascade(大窗口层叠排列)

6.继承窗体:创建继承窗体方法
菜单“项目”->“添加Windows窗体”->Windows Form ->模板:继承的窗体->“继承选择器”中选择要继承的本例中的窗体或从另一个程序集dll中的窗体组件(本地浏览)。

7.WinForm 项目开发常用控件:
Button 按钮控件:
(1)创建控件访问键:button1.Text="&Open"; (按0键相当于单击按钮)
(2)接受(Enter键):AccpetButtom=button1
(3)取消(Esc键):CancelButton=button1
(4)按钮响应触发(MouseEnter、MouseDown、MouseUp)
TextBox 文本框控件:
(1)控制TextBox控件的插入点:textBox1.SelectionStart=? (插入点起始位置)textBox1.SelectionLength=?(插入点以后输入的长度)
(2)创建只读文本:ReadOnly=true;(只显示不可编辑;可以复制,不可以剪切和粘贴)
(3)字符串中放置引号:textBox1.Text='\u0022'+"你好!"+‘\u0022’;  输出结果是“你好!”
(4)创建密码文本框:textBox1.PasswordChar='*';
DataGridView 数据显示控件:
(1)数据绑定操作:
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=aa");
con.Open(); //数据库连接并打开
SqlDataAdapter sda = new SqlDataAdapter("select * from tb_user",con);
DataSet ds = new DataSet();
sda.Fill(ds,"tb_user"); //填充数据集
this.DataGridView1.DataSource=ds.Tables["tb_user"];//绑定到DataGridView
(2)移除自动生成的列:
dataGridView1.AutoGenerateColumns=true;
dataGridView1.DataSource=ds;
dataGridView1.Columns.Remove("字段名");
(3)隐藏自动生成的列:
dataGridView1.Columns["字段名"].Visible=false;
MenuStrip 菜单控件:
  • 显示菜单命令是否被选中标记(勾):Checked=true -> CheckState=true;
  • 显示每次单击更改选中标记状态:CheckOnClick = true
  • 菜单命令添加图标:Image属性设为图像名称,ToolStripItemDisplayStyle=Text/None,则无法显示图像
  • 显示菜单命令快捷键:ShortcutKeys=Ctrl+O组合键,并将ShowShortcutKeys=true
  • 显示菜单命令自定义快捷键:ShortcutKeyDisplayString=Ctrl+Shift+O等自定义的快捷组合键显示菜单命令的访问键:Text= &Open  (注意:按ALT键可以获得菜单焦点,此外避免重复定义访问键)
  • 隐藏菜单项:this.菜单1ToolStripMenuItems.Visible=false;
  • 禁用菜单项:this.菜单1ToolStripMenuItems.Enabled=false;

TreeView 树目录控件:
(1)添加节点复选框属性CheckBoxes=true,节点被选中属性Checked=true
(2)添加子节点方法:
TreeNode newNode = new TreeNode("新节点");
treeView1.SelectedNode.Nodes.Add(newNode);
(3)移除节点方法:
treeView1.Nodes.Remove(treeView1.SelectedNode); //移除选中的节点
TreeView1.Nodes.Clear(); //移除全部树上的节点
(4)确定被单击的TreeView节点:
protect void treeView1_AfterSelect(object sender,System.Windows.Forms.TreeViewEventArgs e){ MessageBox.Show(e.Node.Text); }
此外还有一些在制作软件过程中经常用到的控件:
Label 标签、RadioButton 单选、CheckBox 复选、CheckBoxList 复选列表、ComboBox 下拉列表、GroupBox 标题框架、HScrollBar 水平滚动条、LinkLabel 带超链接的标签、ListBox 列表框、MonthCalendar 日历、Panel 控件容器、PictureBox 图片、ProgressBar 进度条、StatusStrip 状态栏、TabControl 选项卡、Timer 时钟、ToolStrip 工具栏、ToolStripContainer 面板、ToolTip 关联控件显示信息、TrackBar 跟踪条、VScrollBar 垂直滚动条、WebBrowser 浏览网页窗口

常用数据和通信控件:DataSet 数据集(数据在内存中的缓存)、SqlDataAdapter(数据适配器)、SqlConnection(Sql数据库连接)、SqlCommand(Sql操作命令)、DataGridView(数据显示表)、
Microsoft Communications Controls (数据通信)
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表