转:Visual Basic.NET快速开发MIS系统(3)
2024-07-10 13:02:22
供稿:网友
本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。生成继承窗体
生成继承窗体
我们的编程工作大部分都完成了,现在只需要增加新的继承窗体form就可,方法是在form项或项目菜单或工具栏选择添加继承的窗体,在弹出的form中输入窗体名frmuser按打开,在选择继承器中选择frmmodule确定就生成了一新的窗体。 继承的继承如下:
public class frmuser:inherits frmmodel
在生成的窗体中增加一些必要的控件,同时与根据表中字段对应关系设置的tabindex的值。
通过设置控件tabindex的值,可以把该控件与物理表中的字段关系对应起来,如tabindex为1,则对应物理表的第1个字段,如tabindex为2,则对应物理表的第2个字段,如此例推。这方便把输入控件的数据写入表中,把网格数据写入输入控件中,这是技巧,其实现过程见方法:writedatetoarray(),datagridtotext()。
指定物理表
在类frmuser的new方法中指定所操作的物理表名tuser。为什么要在这里指定表名呢?是因为程序在调用frmuser前,先必须申请frmuser的实类,同时进行实类化,自动执行构造函数new(),执行new()时,就把我们所要完成的功能代码放在这里,让它们自动执行。
public sub new()
mybase.new()
'该调用是 windows 窗体设计器所必需的。
initializecomponent()
gcls.updatetable = "tuser"
'在 initializecomponent() 调用之后添加任何初始化
end sub
更改控件的属性,隐藏不需要的控件
在 frmuser的load事件中更改datagrid1的标题并隐藏不需要的控件:
private sub frmuser_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
datagrid1.captiontext = "用户列表"
cbo.visible = false
me.label6.visible = false
end sub
按同样方法,生成下面的窗体frminfo,在此窗体上增加一些新控件,如下:
窗体frminfo类继承frmmodel:
public class frminfo:inherits frmmodel
在类frminfo的new方法中指定所操作的物理表名tinfo。
public sub new()
…
gcls.updatetable = " tinfo "
end sub
现在,toolbar1上增加了新的方法"导入",应该怎样处理呢?事实上只要在frminfo的toolbar1_buttonclick事件中识别时"导入",写要处理的任务就可,如下:
private sub toolbar1_buttonclick(byval sender as system.object, byval e as system.windows.forms.toolbarbuttonclickeventargs) handles toolbar1.buttonclick
select case e.button.text
case "导入"
…
end select
end sub
通过上面的窗体继承方法,凡是对物理表的操作都可以通过这些方法来完成,而不必再重复编写代码。