当前位置:文档之家› C#中用户控件与窗体间的消息传递

C#中用户控件与窗体间的消息传递

C#中用户控件与窗体间的消息传递
C#中用户控件与窗体间的消息传递

C#中用户控件与窗体间的消息传递

如果在c#中实现用户定义控件内的事件挂勾到调用的窗体事件中

我们都知道在https://www.doczj.com/doc/1d15415463.html,开发中,如果使用用户定义控件可以有效的进行程序的模块化。其实在.net 的winform中也是可以使用的。

细节如下:

1、新建应用程序windowsapplication1。

2、添加新的用户控件userlogin。(如图user)

3、定义用户属性

//定义属性

public string username

{

get{return username;}

set{username=value;}

}

public string password

{

get{return password;}

set{password=value;}

}

4、定义委托

//定义委托

public delegate void btnokclickeventhander(object sender,eventargs e);

public delegate void btncancelclickeventhander(object sender,eventargs e);

5、定义事件

//定义事件

public event btnokclickeventhander btnokclick;

public event btncancelclickeventhander btncancelclick

6、事件实现

private void textboxuid_textchanged(object sender, system.eventargs e)

{

username=this.textboxuid.text;

}

private void textboxpwd_textchanged(object sender, system.eventargs e)

{

password=this.textboxpwd.text;

}

private void buttonok_click(object sender, system.eventargs e)

{

if (btnokclick!=null)

btnokclick(this,e);

}

private void buttoncancel_click(object sender, system.eventargs e)

{

if (btncancelclick!=null)

btncancelclick(this,e);

}

7、在form1的winform中实现对用户控件事件的调用,消息的接收。

protected void okclick(object send,system.eventargs e)

{

messagebox.show("uid:"+https://www.doczj.com/doc/1d15415463.html,ername+";pwd:"+userlogin1.password,"userme ssage");

}

protected void cancelclick(object send,system.eventargs e)

{

this.close();

}

8.按f5运行(如图result)

附1(windowsapplication1源代码)

using system;

using system.drawing;

using system.collections;

using https://www.doczj.com/doc/1d15415463.html,ponentmodel;

using system.windows.forms;

using system.data;

namespace windowsapplication1

{

///

/// form1 的摘要说明。

///

public class form1 : system.windows.forms.form

{

private system.windows.forms.panel panel1;

private https://www.doczj.com/doc/1d15415463.html,erlogin userlogin1;

///

/// 必需的设计器变量。

///

private https://www.doczj.com/doc/1d15415463.html,ponentmodel.container components = null;

public form1()

{

//

// windows 窗体设计器支持所必需的

//

initializecomponent();

userlogin1.btnokclick+=new btnokclickeventhander(okclick);

userlogin1.btncancelclick+=new btncancelclickeventhander(cancelclick); //

// todo: 在initializecomponent 调用后添加任何构造函数代码

//

}

///

/// 清理所有正在使用的资源。

///

protected override void dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

components.dispose();

}

}

base.dispose( disposing );

}

#region windows 窗体设计器生成的代码

///

/// 设计器支持所需的方法- 不要使用代码编辑器修改

/// 此方法的内容。

///

private void initializecomponent()

{

this.panel1 = new system.windows.forms.panel();

https://www.doczj.com/doc/1d15415463.html,erlogin1 = new https://www.doczj.com/doc/1d15415463.html,erlogin();

this.panel1.suspendlayout();

this.suspendlayout();

//

// panel1

//

this.panel1.controls.add(https://www.doczj.com/doc/1d15415463.html,erlogin1);

this.panel1.dock = system.windows.forms.dockstyle.fill;

this.panel1.location = new system.drawing.point(0, 0);

https://www.doczj.com/doc/1d15415463.html, = "panel1";

this.panel1.size = new system.drawing.size(216, 101);

this.panel1.tabindex = 1;

//

// userlogin1

//

https://www.doczj.com/doc/1d15415463.html,erlogin1.dock = system.windows.forms.dockstyle.fill;

https://www.doczj.com/doc/1d15415463.html,erlogin1.location = new system.drawing.point(0, 0);

https://www.doczj.com/doc/1d15415463.html, = "userlogin1";

https://www.doczj.com/doc/1d15415463.html,erlogin1.size = new system.drawing.size(216, 101);

https://www.doczj.com/doc/1d15415463.html,erlogin1.tabindex = 0;

//

// form1

//

this.autoscalebasesize = new system.drawing.size(6, 14);

this.clientsize = new system.drawing.size(216, 101);

this.controls.add(this.panel1);

https://www.doczj.com/doc/1d15415463.html, = "form1";

this.text = "form1";

this.panel1.resumelayout(false);

this.resumelayout(false);

}

#endregion

///

/// 应用程序的主入口点。

///

[stathread]

static void main()

{

application.run(new form1());

}

protected void okclick(object send,system.eventargs e)

{

messagebox.show("uid:"+https://www.doczj.com/doc/1d15415463.html,ername+";pwd:"+userlogin1.password,"userme ssage");

}

protected void cancelclick(object send,system.eventargs e)

{

this.close();

}

}

}

附2(userlogin源代码)

using system;

using system.collections;

using https://www.doczj.com/doc/1d15415463.html,ponentmodel;

using system.drawing;

using system.data;

using system.windows.forms;

namespace windowsapplication1

{

///

/// usercontrol1 的摘要说明。

///

/// //定义委托

public delegate void btnokclickeventhander(object sender,eventargs e);

public delegate void btncancelclickeventhander(object sender,eventargs e); public class userlogin : https://www.doczj.com/doc/1d15415463.html,ercontrol

{

private string username,password;

private system.windows.forms.groupbox groupbox1;

private system.windows.forms.button buttoncancel;

private system.windows.forms.button buttonok;

private system.windows.forms.textbox textboxpwd;

private https://www.doczj.com/doc/1d15415463.html,bel label2;

private https://www.doczj.com/doc/1d15415463.html,bel label1;

private system.windows.forms.textbox textboxuid;

///

/// 必需的设计器变量。

///

private https://www.doczj.com/doc/1d15415463.html,ponentmodel.container components = null;

public userlogin()

{

// 该调用是windows.forms 窗体设计器所必需的。

initializecomponent();

// todo: 在initializecomponent 调用后添加任何初始化

}

///

/// 清理所有正在使用的资源。

///

protected override void dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.dispose();

}

}

base.dispose( disposing );

}

#region 组件设计器生成的代码

///

/// 设计器支持所需的方法- 不要使用代码编辑器

/// 修改此方法的内容。

///

private void initializecomponent()

{

this.groupbox1 = new system.windows.forms.groupbox();

this.buttoncancel = new system.windows.forms.button();

this.buttonok = new system.windows.forms.button();

this.textboxpwd = new system.windows.forms.textbox();

https://www.doczj.com/doc/1d15415463.html,bel2 = new https://www.doczj.com/doc/1d15415463.html,bel();

https://www.doczj.com/doc/1d15415463.html,bel1 = new https://www.doczj.com/doc/1d15415463.html,bel();

this.textboxuid = new system.windows.forms.textbox();

this.groupbox1.suspendlayout();

this.suspendlayout();

//

// groupbox1

//

this.groupbox1.controls.add(this.buttoncancel);

this.groupbox1.controls.add(this.buttonok);

this.groupbox1.controls.add(this.textboxpwd);

this.groupbox1.controls.add(https://www.doczj.com/doc/1d15415463.html,bel2);

this.groupbox1.controls.add(https://www.doczj.com/doc/1d15415463.html,bel1);

this.groupbox1.controls.add(this.textboxuid);

this.groupbox1.location = new system.drawing.point(8, 2);

https://www.doczj.com/doc/1d15415463.html, = "groupbox1";

this.groupbox1.size = new system.drawing.size(200, 96);

this.groupbox1.tabindex = 6;

this.groupbox1.tabstop = false;

//

// buttoncancel

//

this.buttoncancel.location = new system.drawing.point(112, 71);

https://www.doczj.com/doc/1d15415463.html, = "buttoncancel";

this.buttoncancel.size = new system.drawing.size(56, 20);

this.buttoncancel.tabindex = 11;

this.buttoncancel.text = "&cancel";

this.buttoncancel.click += new system.eventhandler(this.buttoncancel_click); //

// buttonok

//

this.buttonok.location = new system.drawing.point(32, 71);

https://www.doczj.com/doc/1d15415463.html, = "buttonok";

this.buttonok.size = new system.drawing.size(56, 20);

this.buttonok.tabindex = 10;

this.buttonok.text = "&ok";

this.buttonok.click += new system.eventhandler(this.buttonok_click); //

// textboxpwd

//

this.textboxpwd.location = new system.drawing.point(72, 43);

https://www.doczj.com/doc/1d15415463.html, = "textboxpwd";

this.textboxpwd.passwordchar = *;

this.textboxpwd.size = new system.drawing.size(112, 21);

this.textboxpwd.tabindex = 9;

this.textboxpwd.text = "";

this.textboxpwd.textchanged += new

system.eventhandler(this.textboxpwd_textchanged);

//

// label2

//

https://www.doczj.com/doc/1d15415463.html,bel2.location = new system.drawing.point(9, 42);

https://www.doczj.com/doc/1d15415463.html, = "label2";

https://www.doczj.com/doc/1d15415463.html,bel2.size = new system.drawing.size(64, 23);

https://www.doczj.com/doc/1d15415463.html,bel2.tabindex = 8;

https://www.doczj.com/doc/1d15415463.html,bel2.text = "password:";

https://www.doczj.com/doc/1d15415463.html,bel2.textalign = system.drawing.contentalignment.middlecenter; //

// label1

//

https://www.doczj.com/doc/1d15415463.html,bel1.location = new system.drawing.point(9, 14);

https://www.doczj.com/doc/1d15415463.html, = "label1";

https://www.doczj.com/doc/1d15415463.html,bel1.size = new system.drawing.size(64, 23);

https://www.doczj.com/doc/1d15415463.html,bel1.tabindex = 7;

https://www.doczj.com/doc/1d15415463.html,bel1.text = "username:";

https://www.doczj.com/doc/1d15415463.html,bel1.textalign = system.drawing.contentalignment.middlecenter; //

// textboxuid

//

this.textboxuid.location = new system.drawing.point(72, 15);

https://www.doczj.com/doc/1d15415463.html, = "textboxuid";

this.textboxuid.size = new system.drawing.size(112, 21);

this.textboxuid.tabindex = 6;

this.textboxuid.text = "";

this.textboxuid.textchanged += new system.eventhandler(this.textboxuid_textchanged); //

// userlogin

//

this.controls.add(this.groupbox1);

https://www.doczj.com/doc/1d15415463.html, = "userlogin";

this.size = new system.drawing.size(216, 104);

this.groupbox1.resumelayout(false);

this.resumelayout(false);

}

#endregion

//定义属性

public string username

{

get{return username;}

set{username=value;}

}

public string password

{

get{return password;}

set{password=value;}

}

//定义事件

public event btnokclickeventhander btnokclick;

public event btncancelclickeventhander btncancelclick;

private void textboxuid_textchanged(object sender, system.eventargs e)

{

username=this.textboxuid.text;

}

private void textboxpwd_textchanged(object sender, system.eventargs e)

{

password=this.textboxpwd.text;

}

private void buttonok_click(object sender, system.eventargs e)

{

if (btnokclick!=null)

btnokclick(this,e);

}

private void buttoncancel_click(object sender, system.eventargs e)

{

if (btncancelclick!=null)

btncancelclick(this,e); }

}

}

ExcelVBA用户窗体编程基础

ExcelVBA用户窗体编程基础 概述 当使用MsgBox函数和InputBox函数不能满足与用户交互的需求时,您能使用用户窗体来自定义对话框。您能使用用户窗体来显示所输入的数据,您甚至能使用用户窗体创建一个完整的用户界面,而不会让用户接触到电子表格本身。 您在Windows对话框中所看到的大多数控件都能在用户窗体中实现——命令按钮,选项按钮,复选框,文本框,组合框——加上一些其它不常用的控件像图像,日历,等等。 本文介绍了用户窗体的基本概念,并介绍了使用用户窗体的常用技术。其中,也讲解了一些最通用的思路。在文章中列举了一个包含所有过程的完整的示例文件,以及实现这些过程的代码,让您能在实践中看到所有工作的基本原理和方法。 本文包含以下内容: ● 基本的用户窗体操作 ● 用户窗体和控件的属性 ● 一个用户窗体的生命周期 ● 用户窗体和控件的事件 ● 问题1:如何在用户窗体间传递数据? ● 问题2:如何找到我的窗体中的某类控件? ● 问题3:如何获取数据到列表框中? ● 问题4:如何为循环创建进度条? ● 一个完整的用户窗体综合示例 基本的用户窗体操作 ?创建一个窗体。打开VBE编辑器(选择菜单“工具——宏——Visual Basic编辑器”或按Alt+F11组合键),选择菜单“插入——用户窗体”,或者在工程窗口中单击右键,从弹出的快捷菜单中选择“插入——用户窗体”,即可创建一个窗体。 ?添加控件。当你创建了一个窗体后,将会显示一个名为“控件工具箱”的浮动工具箱(如果没有该工具箱的话,您可以从视图菜单中找到它),其中显示了最普遍的控件类型。单击您想要的控件,拖动它到您的用户窗体中。 ?更多的控件。有一些更多的可用的控件,您可以在控件工具箱中单击右键,从中选择“附加控件”,您能添加日历、电子表

用户控件事件执行顺序

在WebForm1页面上直接放置用户控件WebUserControl1时的事件顺序:WebUserControl1_Init WebForm1_Init Page_Load WebUserControl1_Load WebForm1_PreRender WebUserControl1_PreRender WebUserControl1_Unload WebForm1_Unload 在WebForm1页面的OnInit方法中用代码Load用户控件WebUserControl1时的事件顺序:WebForm1_Init: OnInit WebForm1: Loading controls WebUserControl1_Init : OnInit WebForm1: added to Controls WebForm1: LoadViewState WebUserControl1: LoadViewState WebUserControl1: LoadPostData Begin WebUserControl1: LoadPostData End WebForm1_PageLoad: OnLoad after base's Onload. WebUserControl1_Load: after base's OnLoad iWebUserControl1: RaisePostDataChange WebForm1: OnPreRender WebUserControl1: OnPreRender WebForm1: SavedViewState WebUserControl1: SaveViewState 在WebForm1页面的Page_Load方法中用代码Load用户控件WebUserControl1时的事件顺序:WebForm1_Init : OnInit WebForm1: LoadViewState WebForm1_PageLoad: OnLoad after base's Onload. WebForm1: Loading controls WebUserControl1_Init : OnInit WebUserControl1: LoadViewState WebForm1: added to Controls WebUserControl1_Load: after base's OnLoad WebUserControl1: LoadPostData Begin WebUserControl1: LoadPostData End iWebUserControl1: RaisePostDataChange WebForm1: OnPreRender WebUserControl1: OnPreRender WebForm1: SavedViewState WebUserControl1: SaveViewState 在WebForm1页面的Button1_Click事件中用代码Load用户控件WebUserControl1时的事件顺序:WebForm1_Init Page_Load Button1_Click WebUserControl1_Init WebUserControl1_Load WebForm1_PreRender WebUserControl1_PreRender WebUserControl1_Unload WebForm1_Unload 在WebForm1页面的Page_Load事件中用代码Load用户控件WebUserControl1,WebUserControl1又在Page_Load事件中用代码Load用户控件WebUserControl2时的事件顺序:WebForm1_Init Page_Load WebUserControl1_Init WebUserControl1_Load WebUserControl2_Init WebUserControl2_Load WebForm1_PreRender WebUserControl1_PreRender WebUserControl2_PreRender WebUserControl2_Unload WebUserControl1_Unload WebForm1_Unload

第6章 控件与用户窗体代码【超实用VBA】

第6章控件与用户窗体 范例67 文本框只能输入数值 Private Sub TextBox1_KeyPress(ByVal KeyANSI As MSForms.ReturnInteger) With TextBox1 Select Case KeyANSI Case Asc("0") To Asc("9") Case Asc("-") If InStr(1, .Text, "-") > 0 Or .SelStart > 0 Then KeyANSI = 0 End If Case Asc(".") If InStr(1, .Text, ".") > 0 Then KeyANSI = 0 Case Else KeyANSI = 0 End Select End With End Sub Private Sub TextBox1_Change() Dim i As Integer Dim Str As String With TextBox1 For i = 1 To Len(.Text) Str = Mid(.Text, i, 1) Select Case Str Case ".", "-", "0" To "9" Case Else .Text = Replace(.Text, Str, "") End Select Next End With End Sub

范例68 限制文本框的输入长度 Private Sub TextBox1_Change() TextBox1.MaxLength = 6 End Sub 范例69 验证文本框输入的数据 Private Sub CommandButton1_Click() With TextBox1 If (Len(Trim(.Text))) = 15 Or (Len(Trim(.Text))) = 18 Then Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = .Text Else MsgBox "身份证号码错误,请重新输入!" End If .Text = "" .SetFocus End With End Sub 范例70 文本框回车自动输入 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim r As Integer r = Cells(Rows.Count, 1).End(xlUp).Row With TextBox1 If Len(Trim(.Text)) > 0 And KeyCode = vbKeyReturn Then Cells(r + 1, 1) = .Text .Text = "" End If End With End Sub 范例71 文本框的自动换行 Private Sub UserForm_Initialize() With TextBox1 .WordWrap = True

C#在主窗体Panel中添加新的窗体

在主窗体Panel中添加新的窗体(C#,winform开发) 本文的要写的是如何将窗体(Form)添加到panel中。 为什么要这样呢? 1)如果用tab控件,整个窗体的控件太多,不易于我们编程; 2)可以更灵活的控制窗体的布局。 我想你一定看过这样的配制信息窗体吧(迅雷的配置页面)。 在你的项目开发中,是否也希望做出做出这种效果呢?应该如何设置呢?单击窗体的左边的按钮,窗体右边的内容会根据单击的按钮变化. 开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件.然后根据单击的按钮将子窗体显示在Panel控件上.在按钮的单击事件中加入下面的代码:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); this.panel1.Controls.Add(child); child.Show(); }运行程序显示“不能将顶级控件添加到一个控件上”出现“不能将顶级控件添加到一个控件上”错误怎么处理?在代码中加入 child.TopLevel = false;OK.新问题又出现了.我们不希望子窗体的标题和边筐也显示在父窗体中,再添加如下代码.

child.FormBorderStyle = FormBorderStyle.None;现在的感觉是不是舒服多了.但是还隐藏着一个新问题.怎样动态设置子窗体的Size、Location等呢?我希望在调整父窗体大小时,Panel1中子窗体的大小也跟随动态自动调整 .需要加入下面的事件 private void panel1_Resize(object sender,System.EventArgs e) { try { this.child.ClientSize=new System.Drawing.Size(panel1.Size.Width,pa nel1.Size.Height); } catch(System.Exception Er) { MessageBox.Show(Er.ToString()); } }编译无错,执行时(Error:未将对象引用设置到对象的实例) 但连续点了4个一样的错误提示确认后,程序却可以正常执行,并且form1调整窗体大小form2也可以随之响应了。 此计不行,又生一计.我们可以把子窗体当成一个控件,设置Dock属性不就行了吗?赶快测试一下:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); child.TopLevel = false; child.Dock = System.Windows.Forms.DockStyle.Fill; child.FormBorderStyle = FormBorderStyle.None; //child.Parent = this.panel1; this.panel1.Controls.Add(child); child.Show(); }

北理工20年春季《https://www.doczj.com/doc/1d15415463.html,开发技术》在线作业_2.doc

1.能够连接“层次化数据”的数据源控件是()。 A.SqlDataSource控件和XmlDataSource控件 B.SiteMapDataSource控件和LinqDataSource控件 C.SiteMapDataSource控件和XmlDataSource控 件 D.SqlDataSource控件和LinqDataSource控件 【参考答案】: C 2.APP_Code文件夹用来存储()。 A.数据库文件 B.资源文件 C.自定义类文件 D.主题文件 【参考答案】: C 3.下面不是HttpResponse对象的方法是()。 A.Write() B.Redirect() C.Cookie() D.Clear() 【参考答案】: C 4.下面关于用户控件的说法错误的是()。 A.一个用户控件不能在同一个网页中多次使用 B.用户控件支持可视化开 发 C.可以将已有的aspx文件更改为ascx文件 D.在每个使用用户控件的Web应用程序中,都必须保存一个该控件的副本 【参考答案】: A 5.可以使用属性()禁用主题。 A.EnabledTheme B.EnableThemes C.EnableTheming D.EnabledTheme s 【参考答案】: C 6.GridView控件要实现分页功能需要设置属性()值为True。 A.AllowPages B.AllowPaged C.AllowPaging D.AllowPage 【参考答案】: C

7.HttpRequest对象的()数据集合用于从查询字符串中读取用户提 交的数据。 A.QueryString B.Browser C.ServerVariables D.ClientCertificat e 【参考答案】: A 8.创建一个Cookie的正确代码()。 A.Response.Cookies["userName"]="apple" B.Cookies["userName"]="appl e" C.Cookies["userName"].Value="apple" D.Response.Cookies["user Name"].Value="apple" 【参考答案】: D 9.使用存储过程可以()。 A.提高数据库安全性 B.加快执行速度 C.降低网络通信量 D.使分工更复杂 【参考答案】: D 10.下面关于状态管理的说法错误的是()。 A.客户端状态管理将信息保留在客户端计算机上 B.服务器端状态管理将信息保留在服务器上 C.Web 窗体页是有状态的 D.状态管理可以对同一页或不同页的多个请求维护状态和页信息 【参考答案】: C 11.下面关于存储过程的说法错误的是()。 A.公共数据存储过程可以被多个 Web 应用程序调用 B.存储过程被解释执行 C.一个存储过程可以执行上百条 SQL 语句 D.存储过程或数据库结构的更改不会影响 Web 应用程序 【参考答案】: B

使用窗体控件

第2章使用窗体控件 课堂练习:为控件创建事件处理程序 5)传递给这个事件处理程序的第二个参数(e)的目的是什么? 答:参数e包含事件数据。它是一个EventArgs 对象(实际不包含事件数据的基类),或者是一个派生类(像MouseEventArgs)的实例。要查看派生类的完整列表,请在Visual Studio .NET帮助文档中使用短语“EventArgs 类”进行查找,然后点击链接转到“派生类”。 ●为Click 事件创建一个事件处理程序。 3)上面的双击动作为什么创建了一个Click 事件处理程序? 答:当在设计视图中双击一个控件时,IDE会自动为默认事件创建一个事件处理程序。课堂练习:创建和使用ToolBar控件 8)为什么不能向ToolBar 按钮添加图像呢? 答:ToolBar 控件将ImageList 控件作为图像源。使用ToolBar 控件的ImageList 属性指定Toolbar 将从哪个ImageList 控件获取图像。 13)运行应用程序。单击工具栏按钮时有事情发生吗?必须处理什么事件以响应单击ToolBar按钮? 答:ToolBar 的ButtonClick事件用来处理ToolBar按钮的单击。ToolBarButtonClickEventArgs 用来确定单击了哪个按钮。 课堂练习:在运行时添加和移除控件 ●添加新控件 6)为什么decimalCheckBox 出现在GroupBox1控件的左上角? 答:控件位置属性的默认坐标X和Y的值均为零。 课堂练习:在运行时更新菜单 ●使用另一个MainMenu 9)什么时候能在一个应用程序中使用多个MainMenu 控件? 答:在应用程序的上下文改变或者应用程序有多种状态时,使用(显示)多个MainMenu 对象会很有帮助。 ●将一个ContextMenu 分配给一个控件。 5)如何找出哪个控件与ContextMenu 有关联? 答:ContextMenu.SourceControl 属性获取显示快捷方式菜单的控件。 ●找出与ContextMenu关联的控件

向用户窗体中添加控件

若要向用户窗体中添加控件,请在“工具箱”中查找要添加的控件,将该控件拖到窗体上,然后拖动控件上的调整柄,直至控件的外边框成为所需的大小和形状。 注意如果将控件(或若干“成组”的控件)从窗体拖回到“工具箱”,将创建该控件的一个模板,该模板可被重新使用。对于实现应用程序的标准界面,这是非常有用的功能。 向窗体添加了控件之后,可用 Visual Basic 编辑器中“格式”菜单上的命令调整控件的对齐方式和间距。 上页:Excel VBA教程:向文档中添加控件下页:Excel VBA教程:应用程序对象事件 Excel VBA Excel VBA教程:应用程序对象事件Excel VBA教程:图表对象事件 Excel VBA教程:控件和对话框事件Excel VBA教程:在某一 Microsoft Office 应用程序中控制其他 Microsoft Office 应 用程序 Excel VBA教程:创建自定义对话框Excel VBA教程:新建工作簿 Excel VBA教程:创建“用户窗体”Excel VBA教程:显示自定义对话框 Excel VBA教程:获取有关 Macintosh 关键 字的帮助 Excel VBA教程:在单元格区域中循环Excel VBA教程:如何引用单元格和区域Excel VBA教程:初始化控件属性Excel VBA教程:打开工作簿Excel VBA教程:QueryTable对象事件 Excel VBA教程:引用工作表上的所有单元格Excel VBA教程:用 A1 样式记号引用单元格 和单元格区域 Excel VBA教程:用编号引用单元格Excel VBA教程:相对于其他单元格来引用单 元格 Excel VBA教程:用 Range对象引用单元格Excel VBA教程:用快捷记号引用单元格

C#中用户控件与窗体间的消息传递

C#中用户控件与窗体间的消息传递 如果在c#中实现用户定义控件内的事件挂勾到调用的窗体事件中 我们都知道在https://www.doczj.com/doc/1d15415463.html,开发中,如果使用用户定义控件可以有效的进行程序的模块化。其实在.net 的winform中也是可以使用的。 细节如下: 1、新建应用程序windowsapplication1。 2、添加新的用户控件userlogin。(如图user) 3、定义用户属性 //定义属性 public string username { get{return username;} set{username=value;} } public string password { get{return password;} set{password=value;} } 4、定义委托 //定义委托 public delegate void btnokclickeventhander(object sender,eventargs e); public delegate void btncancelclickeventhander(object sender,eventargs e); 5、定义事件 //定义事件 public event btnokclickeventhander btnokclick; public event btncancelclickeventhander btncancelclick 6、事件实现 private void textboxuid_textchanged(object sender, system.eventargs e) { username=this.textboxuid.text; } private void textboxpwd_textchanged(object sender, system.eventargs e) { password=this.textboxpwd.text; } private void buttonok_click(object sender, system.eventargs e) { if (btnokclick!=null)

C#创建用户控件

演练:使用Visual C# 创作用户控件 Visual Studio .NET 2003 用户控件提供了一种创建和重用自定义图形界面的方法。用户控件本质上是具有可视化表示形式的组件。因此,它可能包含一个或多个Windows 窗体控件、组件或代码块,它们能够通过验证用户输入、修改显示属性或执行作者所需的其他任务来扩展功能。可以按照与其他控件相同的方式,将用户控件置于Windows 窗体中。在本演练的第一部分,创建一个名为ctlClock 的简单用户控件。在本演练的第二部分通过继承扩展ctlClock 的功能。 创建项目 创建新的项目时应指定其名称,以设置根命名空间、程序集名称和项目名称,并确保默认组件将位于正确的命名空间中。 创建ctlClockLib 控件库和ctlClock 控件 1.在“文件”菜单上,指向“新建”,然后选择“项目”以打开“新建项目”对话框。 2.从“C# 项目”列表中选择“Windows 控件库”项目模板,然后在“名称”框中键入ctlClockLib。 注意“Windows 控件库”模板在Visual C# .NET 的标准版中不可用。有关更多信息,请参 见Visual C# 标准版的功能。 默认情况下,项目名称ctlClockLib也被分配到根命名空间中。根命名空间用于限定程序集中的组件名。例如,如果两个程序集都提供名为ctlClock 的组件,则可以使用 ctlClockLib.ctlClock指定ctlClock 组件。在解决方案资源管理器中,右击 “UserControl1”并从快捷菜单中选择“查看代码”。 3.找到Class语句public class UserControl1,将UserControl1更改为ctlClock 以更改组件的名称。 注意默认情况下,用户控件从系统提供的UserControl类继承。UserControl类提供所 有用户控件要求的功能,并实现标准方法和属性。 4.找到构造函数public UserControl1(),将UserControl1 更改为ctlClock。 5.在解决方案资源管理器中,单击“UserControl1”,然后在“属性”窗口中,将FileName属性 更改为ctlClock.cs。 6.从“文件”菜单中,选择“全部保存”来保存项目。 将Windows 控件和组件添加到用户控件

第二章 窗体与基本控件

第二章窗体与基本控件 教学内容: 一、窗体 窗体的属性、事件、方法及应用举例 二、基本控件以及对控件的格式化 命令按钮、标签、文本框等基本控件属性、事件与方法,基本控件的添加/删除、调整控件的大小与位置、窗体与控件的布局调整 三、简单语句 Print方法、人机对话函数(InputBox,MsgBox,Cls,End,Stop,Rem语句)、基本格式、功能、举例说明。教学要求: 了解:控件的格式化 掌握:常用控件(窗体、文本框、标签、命令按钮)的常用属性、事件和方法、Print方法、Inputbox、Msgbox、Cls、End语句的使用方法 §2.1 窗体 1.窗体的基本属性 Name 对象的名称 指定窗体的名称,在程序代码中用这个名称引用该窗体。 第一个窗体的名称缺省值为form1,通常要给name属性设置一个有实际意义的名称,便于识别。 Caption 对象的标题 设置窗体标题栏显示的文本。 Height 对象的高度 Width 对象的宽度 设置窗体的高度和宽度。单位为Twip。 1Twip=1/20点=1/1440英寸=1/567cm Enabled 对象的激活或禁止 用来设置窗体是否响应鼠标或键盘事件。缺省时为True,窗体能够对用户产生的事件作出反映。 Visible 对象的可见性 设置窗体是否显示。True(窗体可见),False(运行时,窗体及其上面的对象都将被隐藏) Top 对象的顶边距离 Left 对象的左边距离 Backcolor 设置窗体的背景颜色; Forecolor 设置窗体的前景颜色。 Font 设置窗体上字体的样式,大小,字形等。 Picture 设置在窗体中显示的图片。 注意:要在程序中设置该属性的值,需要使用LoadPicture函数。 WindowStare属性设置窗体运行时的大小状态。有三个可选值: 0-Normal 窗体大小由Height和Width属性决定,此值为缺省值; 1-Minimized 窗体最小化成图标; 2-Maximized 窗体最大化,充满整个屏幕。 2.窗体的事件和方法 事件: Click(单击)事件:单击鼠标左键时触发 DblClick(双击)事件:双击窗体时触发 Load(装入)事件:窗体被装入工作区时触发 方法: Print 格式:[对象名.] Print [表达式列表][;|,] 功能:在对象上输出信息 例如:Form1.Print “VB”;”程序设计” Cls 格式:[对象名.] Cls

验证控件

肇庆学院计算机学院 https://www.doczj.com/doc/1d15415463.html,动态网站开发实验报告实验名称验证控件 班级姓名学号实验地点日期成绩 一、实验目的: 掌握使用验证控件的方法。 二、实验环境: Windows 系列操作系统的计算机,软件visual studio 2010。 三、实验内容、步骤、实验结果与分析: 见附页 五、实验总结 基本掌握了怎么使用验证控件的方法。

实验要求: 任务一验证用户注册页面信息 (1)问题描述:设计用户注册页面,并对用户在注册时输入的数据进行检验,通过检验之后再向服务器发送请求,进行以后的操作。用户需要输入姓名、职业、 年收入和年存款、电话号码等信息。 (2)用户注册页面具体验证内容说明: ◆年收入要介于10,000与100,000之间,年存款应低于年收入 ◆ID号要符合ACC000这样的格式,即第一位是A(大写),二三位是大写B-Z 中的任意字母,最后三位要求是数字。 ◆用户输入两次密码必须一致 ◆电话号码要满足这样的格式:(010)12345678或者(0756)-1 234567,即区号必须为3或4位数字,并用“圆括号”分隔,电话号码为7 或者8位, ◆身份证号为15或18位数字,如果是18位则最后一位可以是X ◆邮政编码为6位数字 ◆Email要符合电子邮箱的规则 ◆个人网页要符合网址的写法 ◆中文名字必须是简体中文,并且是2到4个字 ◆年存款最多为年收入的80% (3)创建工程,并设计用户注册界面,可参照下图4-1所示。 图4-1 用户注册界面设计图(4)在用户注册页面中的用户输入信息控件(TextBox控件)及主要控件设置参见下表4-1 控件属性名称属性值Lblel ID LblMessage Textbox ID TxtID Textbox ID TxtPWD Textbox ID TxtPWD2 Textbox ID TxtEmail Textbox ID TxtYearIncome Textbox ID TxtYearSave Textbox ID TxtHomePage Textbox ID TxtTel Textbox ID TxtIDCard Textbox ID TxtZip Textbox ID TxtSimpName

vb用户控件制作讲解与实例

1.定义控件的属性、事件和方法,其中属性是最常使用的。 2.保存和读取中间用户设置的属性值。 3.为达到你的预定目的而调用的各种技术手段。 在用户控件中定义的属性、事件、方法,其性质都必须是公用的,也就是说,只有用Public 来定 义,这样你才能在主程序代码中使用这些事件和方法,以及设置或获取这些属性值,也只有公用的属性 才会在窗体页面相关控件的属性窗口显示出来。 一、属性 属性是用户控件最基本的东东,用户控件可以没有事件,可以没有方法,但不能没有属性(当然, 技术上来说是可以没有属性的,但这样的控件使中间用户无法进行任何设置,是没有什么意义的)。那 么,如何定义用户控件的属性呢?为用户控件添加属性有两种办法: 1.公用变量法: public 变量名称as 类型 这里的变量名称就是属性名称。这样定义的属性一般不会保存属性值,所以常常用作只读属性,在 笔者的用户控件中,用于对主程序返回一个必要的值。例如“四则运算”控件中的“ComputeAnswer” 属性: Public ComputeAnswer As String 它返回的是计算结果,而计算结果是不需要保存在控件中的,所以把它用公用变量法定义。再例如 消息框控件中的FeedValue 属性: Public FeedValue As Integer '返回值 它返回最终用户选中的消息框按纽的编号,这个编号也只需要在主程序中处理,而无需保存在控件 中,所以也用公用变量法定义成只读属性。 2.property 过程法: public property Get 过程名称() as 类型 …… end property public property Let 过程名称(new值as 类型) …… end property 这里的过程名称就是属性名称。 而property 过程法又有两种:一种是如上所述的标准过程法,另一种就是枚举法。 ㈠标准过程法 这是用得最多的一种属性定义方法。在用户控件的代码页面选中“工具→添加过程”,会跳出一个 对话框,然后在单选按纽中选择“属性”,再在“名称”栏中输入属性名,点击确定,VB 就会自动生成

DevExpress基础验证控件

DevExpress 的验证控件 分类:DevExpress2012-08-09 23:44 975人阅读评论(1) 收藏举报1. DXErrorProvider:错误提示控件,用法类似于VS的winform控件中的ErrorProvider。 下面为一个使用实例,验证文本框输入是否为数字: ①.添加System.Text.RegularExpressions引用。 ②.在设计视图上拖一个textEdit控件textEdit1。 ③.验证输入是否为数字,不是显示错误提示。 [html]view plaincopyprint? 1.public bool IsNumeric(string sNumeric) 2.{ 3. return (new Regex("^[\\+\\-]?[0-9]*\\.?[0-9]+$")).IsMatch(sNumeric) ; 4.} 5.private void simpleButton1_Click(object sender, EventArgs e) 6.{ 7. InitValidationRules(); 8. dxErrorProvider1.ClearErrors(); 9. if (IsNumeric(this.textEdit1.Text)==false) 10. { 11. dxErrorProvider1.SetError(textEdit1, "输入要为数字! ");//DXErrorProvider.SetError(验证的控件,错误提示) 12. } 13.} 2.DxValidationProvider:验证控件,类似于VS的web控件中的"验证控件" 下面为DxValidationProvider使用实例: ①.添加DevExpress.XtraEditors.DXErrorProvider引用。 ②.在设计视图上拖两个textEdit控件textEdit2和textEdit3。 ③.实现验证textEdit2不可为空,textEdit3输入值在0-100之间: [csharp]view plaincopyprint? 1.private void InitValidationRules() 2.{ 3. ConditionValidationRule notEmptyValidationRule = new ConditionVal idationRule(); 4. notEmptyValidationRule.ConditionOperator = ConditionOperator.IsNo tBlank;//验证条件 5. notEmptyValidationRule.ErrorText = "此栏不能为空!";//提示信息

《数据设计与实践》综合练习题(二)及答案

《数据库设计与实践》综合练习题(二) 一、填空题 1、快捷图标表示:________,快捷图标表示:________,快捷图标表示:________。 2、https://www.doczj.com/doc/1d15415463.html,的编译命令是:________。 3、使用Command的________ 方法返回DataReader 对象。 4、服务器验证控件的________ 属性可以将错误信息传达给用户。 5、在Web窗体的Page_Load事件中可以通过________ 属性区分窗体是首次还是回送(PostBack)。 6、在引用用户控件的https://www.doczj.com/doc/1d15415463.html,程序中,包含一些特殊的Page指令。其中,指明程序使用的编程语言的为________属性,而________属性设定事件处理真正的代码位置,________属性则设定需要引入的类名。 7、使用页的________属性可以确定是否启用了跟踪。 8、在Web服务器验证控件与被验证的控件之间是通过________ 属性进行关联的。 9、声明一个用户控件的三个主要元素是________、________和________。 10、Web.config 中,所有的配置都必须包含在________标记下。 11、在基于Forms的身份验证中,节的? 表示________ ,* 表示________。 12、Session_Start事件是在________文件中定义的。 13、要获取DataGrid编辑模板中TextBox的文本,需要使用转换函数________。 14、包含Web窗体事件代码的文件后缀是________。 15、为DataList设置水平布局的属性是________ ,设置每行重复记录数的属性是________ 。 16、为了在DataGrid中实现数据排序,通常情况下为其DataSource属性设置的数据源是:________。 二、选择题 1、指出以下程序的运行结果: Dim myarray() As Integer = {0, 1, 2, 3} Console.WriteLine(myarray(0))

winfrom窗体和控件布局

第4章 1.回顾 桌面应用程序中的单选按钮的使用 可以使用分组框对控件进行分组 用PictureBox可显示图片 Timer控件是用于计时的计时器控件,可以重复执行Tick事件 滚动条可滚动取值,用进度条可记录某一过程的进度情况 用选项卡控件可对窗体上的控件进行分类 2.本章内容 了解SDI、MDI窗体 掌握TreeView控件 3.本章重点 了解SDI、MDI窗体 掌握TreeView控件 4.本章讲课思路 什么单文档、什么是多文档 多文档窗体的作用 如何创建多文档窗体 treeview控件 节点集和节点对象 5.知识点讲解 01.知识点一:MDI窗体 a)讲解思路: 1)什么是窗体,应用程序的用户界面,多文档窗体有是什么样的窗体? 2)SDI、MDI窗体的区别 3)如何创建多文档窗体 4)MDI主窗体的属性、方法和事件 5)操作MDI子窗体 6) b)讲解要点:

如何创建多文档窗体 MDI主窗体的属性、方法和事件 操作MDI子窗体 c)课堂练习: 创建一个winform登录程序主窗体编译并运行 d)小结: MDI多文档窗体,就是可以在一个界面中同时对多个文档进行操作 02.知识点一:TreeView控件 a)讲解思路: 什么数树形菜单 Windows 资源管理器中左窗格所包含的目录和文件是以树型视图样式排列的 Treeview 控件的作用。 用于以节点形式显示文本或数据,这些节点按层次结构顺序排列 节点集和节点对象 节点的常用属性和方法和事件 b)讲解要点: 节点集和节点对象 节点的常用属性和方法和事件 c)课堂练习: 在主窗体中添加treeview控件 d)小结: Treeview 控件的作用。 用于以节点形式显示文本或数据,这些节点按层次结构顺序排列 节点集和节点对象 03.课堂总结 a)思路: 04.掌握多文档窗体的创建及使用 05.使用树视图显示有层次结构的数据 06.作业: 课堂作业:编写登陆主窗体。 课后作业:书上日记本练习

《在窗体中添加控件》

说课教案 课题:在窗体中添加控件 教材:中等职业学校计算机技能型紧缺人才培养规划教材—— 《中文Access2003实用教程》李耀洲等主编说课教师:杭州市电子信息职业学校黄水萍 一.教材分析 1.教材的地位与作用 “在窗体中添加控件”是李耀洲等主编的中职计算机技能型紧缺人才培养规划教材《中文Access2003实用教程》第五章的核心内容。在前面的教学过程中学生已经掌握了设计、使用和编辑“表”对象,能够根据需要设计出合理的“查询”对象,本章的“窗体”对象起着联系数据库和用户的桥梁作用,因此学生能够设计出既美观又方便用户操作的窗体对象将对以后他们的数据库软件设计之路打好扎实的基础。 2.教材的处理 教材中只是一味地为了介绍某一控件而介绍它的使用方法,并没有给学生一个直观的能激发学生学习兴趣的实例来说明,对于我们中职的学生,学生认知水平较低,推理能力较弱,另外对于他们来说更重要的是培养他们的知识应用能力和技能,因此我把在窗体中添加控件自行设计了两个大项目来进行学习,第一个项目中包含“标签”、“文本框”、“绑定对象框”、“选项组”这些控件的使用方法,第二个项目主要介绍了“选项卡控件”和“命令按钮”控件,同时设计了一个综合练习,从而让学生能够对窗体中的常用控件有一个全面的认识。现在我正针对第二个项目的学习进行说课。 3.教学目标的确定 在中职教育培养目标指导下,结合教学大纲和学生的特点,我确定本内容的教学目标如下。 ①知识目标:进一步掌握标签、文本框、绑定对象框和组合框的使用方法;理解使用选项卡和命令按钮的目的;基本掌握选项卡和命令按钮的设计方法。 ②技能目标:培养学生的观察能力;培养学生自主学习、协作学习及分析问题、解决问题的能力;培养学生对知识的应用能力。 ③情感目标:由于学生众多,层次差异较大,教师培养的小助手不但可以协助教师更有

用户窗体的

用户窗体的基础知识用户窗体的显示方式用于以编程方式显示用户窗体的语法是下列: UserFormName.Show 若要显示名为 UserForm1 用户窗体,使用以下代码: UserForm1.Show ,您可以加载到内存用户窗体而不实际显示它。可能需要复杂的用户窗体多个要显示的秒数。因为您可以预先用户窗体加载到内存中,您可以决定何时会导致这种开销。而不显示它加载 到内存的 UserForm1,使用下面的代码: Load UserForm1 显示用户窗体,您必须使用了以前显示的显示方法。 如何暂时隐藏用户窗体如果要暂时隐藏用户窗体,使用隐藏方法。您可能希望隐藏用户窗体,如果您的应用程序涉及到用户窗体之间移动。若要隐藏用户窗体,使用下面的代码: UserForm1.Hide 如何从内存中删除用户窗体若要从内存中删除用户窗体使用卸载语句。若要卸载 UserForm1 命名的用户窗体,使用下面的代码: Unload UserForm1 如果您卸载了用户窗体与用户窗体相关联,则与在用户窗体上某个控件关联的事件过程中(渚嬪的方式 单击命令按钮),可以使用"Me"关键字而不是用户窗体的名称。若要使 用"Me"关键字卸载用户窗体,使用下面的代码: Unload Me 如何使用用户窗体事件用户窗体支持许多预定义的事件,您可以将附加 VBA 过程。该事件时则该过程,您附加到该事件的运行。由用户执行的单个操作可以启动多个事件。最经常使用的用户窗体的事件包括初始化事件、, Click 事件和终止事件。 请注意VBA 模块包含事件过程可能被称为"隐藏"用户窗体模块。在模块包含事件过程中不可见 Visual Basic 编辑器的 Microsoft 项目资源管理器窗口的模块集合。您必须双击 用户窗体可以查看用户窗体代码模块的正文。 如何捕获用户窗体事件要捕获用户窗体事件,请按照这些步骤操作: 1.在 Excel 中创建一个新的工作簿。 2.在工具菜单上指向宏,然后单击Visual Basic 编辑器。

aspnet模拟试卷

一、选择题(没有特别说明的题目都为单选) 1.下列选项中,只有______不是Page指令的属性 A. CodeFile B. Inherits C. namespace D. Language 2.下面的_____对象可用于使服务器获取从客户端浏览器提交或上传的信息。 A. Response B. Server C. Request D. Session 3. 下面对于状态保持对象说法错误的是______ A. Session对象是针对单一会话的,可以用来保存对象。 B. Cookie是保存在浏览器端,当没设置Cookie的过期时间时,关闭当前会话相 关浏览器后,Cookie丢失。 C. Application是应用程序级的,所有浏览器端都可以获取到Application中保存 的信息 D. Session对象保存在浏览器端,容易丢失。 https://www.doczj.com/doc/1d15415463.html,中,Server对象的______方法用于对URL地址进行编码 A.UrlEncode B.UrlDecode C.MapPath D.Execute 5.关于站点地图说法错误的是_______ A. 站点地图文件是xml格式的文件 B.站点地图根节点为元素,每个文件有且仅有一个根节点。 C.下一级有且仅有一个节点。 D.站点地图中,同一个URL可以出现多次。 6. 下面关于母版页和内容页使用说法错误的是哪一项___? A. 一个内容页可以引用多个母版页。 B. 内容页通过Content控件的ContentPlaceHolderID属性来指定要填充到母版 页中的哪个内容块。 C. 内容页不可以包含、 、

标签。 D. 内容页通过@Page指令的MasterPageFile属性指定所引用的母版页。 7.下面关于Html控件和Web控件说法错误的是_____ A. 所有的Web控件最终在浏览器端都会生成为相对应的Html控件 B.Web控件让我们可以使用控件+事件的开发方式 C.运行时,页面中如果包含Web控件,需要考虑到浏览器的兼容性 D.Html控件比Web控件的性能要高一些 8. 站点地图文件中,下面哪个属性不属于元素?____ A.url

相关主题
文本预览
相关文档 最新文档