1、Windows Forms(窗体)表示在应用程序中显示的任何窗口。 当为Windows应用程序创建一个新的项目时,将一个窗体自动添加到项目中。该窗体的默认名为Form1.cs。 Windows中的每个窗体都是从System.Windows.Forms 命名空间的Form类派生而来的类。,Windows Forms介绍,Windows Forms的属性用来决定窗体在运行时的外观。,Windows Forms属性,Size 属性用于指定窗体的高度和宽度。,Font 属性用于为窗体的各种控件上显示的文本指定字体的样式、尺寸和类型。,Text属性用于指定在窗体的标题栏中显示的标题。,Backcolor
2、 属性用来指定窗体的背景颜色。,Windows Forms方法允许您执行各种任务,如打开、激活和关闭窗体。 方法有:,Windows Forms方法,Form1 frmObj = new Form1(); frmObj.show(); frmObj.hide(); frmObj.Activate();frmObj.Close();,/ 用来显示窗体。,/ 用来隐蔽窗体。,/用来激活一个窗体并在它上面设置焦点。,/用来关闭窗体 。,当用户执行操作时会产生事件,如单击鼠标或按下键。 可以在一个特殊的称为事件处理程序(event handler)的方法内指定出现某事件时将要执行的操作。 在用户需要显
3、式调用方法时,事件处理器方法中的代码在事件产生时同时执行。 窗体中使用的常见事件有: Click FormClosed Deactivate Load MouseMove,Windows Forms 事件,控件是用于接受用户输入或在窗体上显示某些信息的组件。 每个控件都有它自己的一套属性、方法和事件,以便使它适合于完成某种特定的任务。 可以在设计期间通过使用Properties窗口来设置控件的属性。 还可以在运行时通过编写代码来设置控件的属性。,使用Windows窗体控件,让我们识别窗体的各种控件。,使用Windows窗体控件(续),标签控件,文本框控件,组合框控件,分组框控件,复选框控件,按
4、钮控件,单选按钮控件,在运行时加载控件称为动态加载(dynamic loading)控件。 每个控件都是从System.Windows.Forms.Control 类派生得到的一个类。 为了在运行时添加控件: 创建将要添加的控件的一个实例。 设置该控件的属性。 将新控件添加到父控件的Controls集合中。让我们看看如何在运行时添加控件。,在Windows窗体中动态加载空间,示例,要动态加载一个文本控件需要编写如下代码:private void button1_Click(object sender, EventArgs e)TextBox t1 = new TextBox();this.Co
5、ntrols.Add(t1);,在Windows窗体中动态加载空间(续),如果在运行时将一个控件添加到窗体,那么在运行时创建事件处理程序是必需的。 当在运行时创建一个事件处理程序时,首先必须创建一个方法,该方法具有和希望处理的事件相同的参数。 然后必须将该事件与指定事件处理程序的代码联系起来。,在运行时创建事件处理程序,使用剪贴板执行拖放操作,拖放功能允许在一个应用程序中将对象从一个位置拖动到另一个位置。,拖放操作事件,为了执行拖放操作,Windows Forms 应用程序需要处理如下事件: ItemDrag DragEnter DragOver DragDrop DragLeave Give
6、Feedback,为了执行拖放操作,用户必须执行如下的一系列步骤: 1. 通过调用控件的MouseDown或 ItemDrag 事件的DoDragDrop()方法来启动拖放操作。 2. 处理事件以便向用户提供有关拖放操作的信息。这些事件包括DragEnter、DragLeave和GiveFeedback。 3. 为了允许目标控件接受放置的数据,将它的AllowDrop 属性设为true。 4. 在目标控件的DragDrop 事件中编写代码来指定如何处理放置的数据。,拖放操作阶段,剪贴板充当任何在Windows操作系统上运行的应用程序的临时存储区。 通过使用System.Windows.Form
7、s.Clipboard类提供的方法,可以将剪贴板功能集成到VC#应用程序中。 有三种操作: 将数据存储到剪贴板中 识别剪贴板上的数据类型 检索剪贴板中的数据,在Windows窗体应用程序中提供剪贴板支持,要将数据存储到剪贴板中,使用如 SetAudio(), SetData(), SetImage()方法,要识别剪贴板上的数据类型,使用如ContainsAudio(), ContainsData(), ContainsImage()方法,要检索剪贴板中的数据,使用如 GetAudioStream(), GetData(), GetImage()方法,课间思考,当用户将一个对象拖动到TreeVi
8、ew或ListView控件中时会出现哪个事件? 1. DragEnter 事件 2. DragOver事件 3. GiveFeedback事件 4. ItemDrag事件,答案 4. ItemDrag 事件,在应用程序之间执行拖放操作,如下代码有助于用户在WordPad文件中键入文本框并在其窗体上的文本框控件中拖此文本框:private void textBox1_DragEnter(object sender,DragEventArgs e)if(e.Data.GetDataPresent(DataFormats.Text)e.Effect = DragDropEffects.Copy;elsee.Effect = DragDropEffects.None; ,private void textBox1_DragDrop(object sender, DragEventArgs e)textBox1.Text = e.Data.GetData(DataFormats.Text).ToString();,Drag to the Form,在应用程序之间执行拖放操作(续),