【vb.net】——窗体继承

简介: 【vb.net】——窗体继承

vb.net是在vb的基础上更进一步的接近了面向对象编程的思想,在继承一部分发现窗体的继承比较和以前不同,在以前没怎么遇到过这类的问题,下面以一个小例子,来总结一下窗体继承的用法和好处:


 1、首先新建一个项目,窗体布局如下:


20141127175650289.jpg


以这个窗体为父窗体,然后继承出两个窗体form1和form2.继承的方法如下:

 

(1)首先运行form1生成EXE文件,然后在【项目】中选择【添加新项】


20141127180142696.jpg


(2)然后选择【Windows Forms】左侧,在选择【继承的窗体】


20141127180634369.jpg


(3)然后选择你的父窗体的位置,点击确定即可!


20141127180807767.jpg

重复上述过程,我们可以添加多个子窗体,此时我们的【解决方案管理器】窗口如下图:    

20141127181047714.jpg

此时我们就得到了和父窗体一样的窗体布局,但是我们还可以在原有的基础上,添加控件,重新布局子窗体(但是我们不能修改从父窗体中继承的控件)


20141127181405600.jpg


三个红框内的控件是在父窗体中继承得到的。用同样的方法可以得到form3

20141127181632100.jpg


代码如下:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.Visible = False
        intstep -= 1
        If intstep = 0 Then
            frm1.Visible = True
        End If
        If intstep = 1 Then
            frm2.Visible = True
        End If
    End Sub
    Protected Shared intstep As Integer, strname, strpass As String, strEmail As String
    Protected Shared strmemo As Integer
    Protected Shared frm2 As New Form2
    Protected Shared frm1 As New Form1
    Protected Shared frm3 As New Form3
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Visible = False
        intstep += 1
        Select Case intstep
            Case 1
                frm2.Visible = True
            Case 2
                frm3.TxtName.Text = strname
                frm3.TxtPassword.Text = strpass
                frm3.TxtFoxmail.Text = strEmail
                frm3.Visible = True
        End Select
    End Sub
End Clas

小结


在设计时,当生成包含基窗体的项目时,对基窗体外观所做的更改(属性的设置或控件的增减)将在继承的窗体上反映。仅将更改保存到基窗体是不够的。若要生成项目,请从“生成”菜单选择“生成”。 在我们做有多个相似功能的窗体的时候,我们可以考虑用窗体的继承,这样可以为我们节省很多的时间和精力,并且使我们的程序更职业化。

目录
相关文章
【vb.net机房收费系统】之没有包含要从继承的组件的已生成程序集
【vb.net机房收费系统】之没有包含要从继承的组件的已生成程序集
42 0
《你必须知道的.net》读书笔记 002——1.2 什么是继承
    1.2 什么是继承     “对于继承,就应该着手从这些容易误解与引起争论的话题来寻找关于全面认识和了解继承的答案。一点一滴摆出来,最后在对分析的要点做归纳,形成一种系统化认识。这就是一种探索问题的方式,用于剖析继承这一话题真是在恰当不过了。
834 0
.net Framework2.0 里面的Webcontrols的几个常用控件的继承树
      为了写好分页控件的自动绑定的功能,研究了一下几个控件的继承关系,目的就是为了看看DataSource到底是从哪里来的。                层数还真是多,DataSource来自三个地方,Repeater 有自己的DataSource,BaseDataList有一个,他派生出来了DataGrid和DataList。
796 0
|
存储 Java 索引
.NET面试题解析(04)-类型、方法与继承
转自:http://www.cnblogs.com/anding/p/5248973.html  常见面试题目: 1. 所有类型都继承System.Object吗? 2. 解释virtual、sealed、override和abstract的区别 3. 接口和类有什么异同? 4. 抽象类和接口有什么区别?使用时有什么需要注意的吗? 5. 重载与覆盖的区别? 6. 在继承中new和override相同点和区别?看下面的代码,有一个基类A,B1和B2都继承自A,并且使用不同的方式改变了父类方法Print()的行为。
1092 0
|
存储 索引
.Net 配置文件——继承ConfigurationSection实现自定义处理类处理自定义配置节点
        除了使用继承IConfigurationSectionHandler的方法定义处理自定义节点的类,还可以通过继承ConfigurationSection类实现同样效果。             首先说下.Net配置文件中一个潜规则:          在配置节点时,对于想要进行存储的参数数据,可以采用两种方式:一种是存储到节点的属性中,另一种是存储在节点的文本中。
893 0
|
.NET
ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件
原文:ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件                                                         第二章 继承于WebControl的自定义控件                      到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支持!不知道大家对我讲的方式有什么好的建议,我尽量使自定义控件的技术让更多的程序员同胞接受。
861 0