用你的方法试了一下,出现的是两个窗体。一个是代码创建的,还有一个是“Windows窗体应用程序”本身创建的。
原因可能是:即使用你的代码覆盖了Form1.vb,但Form1.Designer.vb中实例化的Form1还是存在,并且是在Form1.Designer.vb中实例化的Form1的Load事件中,又实例了一个myForm,所以原来的Form1必然存在。
我试了另外一个思路:创建一个“空项目”,再建一个模块,然后再继承Form类,最后再实例化并显示出来。
程序代码:
Module Module1
Sub Main()
Dim fm As New Form
fm.ShowDialog()
End Sub
End Module
出错:显示未定义类型“Form”
百度了一下:
https://zhidao.baidu.com/question/576961572.html
大概是需要:
Imports System.Windows.Forms
然后我把这一句加在最前面,显示“不包含任何公共成员”之类的信息。
然后我又百度了一下,需要在项目的属性里引用。
所以,我引用了一下。写了下面的代码,算是能运行了,也只有一个窗体了。
程序代码:
Module Module1
Sub Main()
Dim fm As New MyForm
fm.ShowDialog()
End Sub
Public Class MyForm
Inherits System.Windows.Forms.Form
'Private Sub InitializeComponent()
'Me.Text = "用类的方式学习窗体和控件"
'Me.Controls.Add(Me.Button1)
'Me.Button1 = New System.Windows.Forms.Button
'End Sub
'Friend WithEvents Button1 As System.Windows.Forms.Button
End Class
End Module
但是,问题又来了:
一、引用和导入有什么区别?
二、导入用Imports,那引用要用什么命令呢?不能用代码实现吗?非要在项目属性里设置吗?
三、我写的MyForm类,怎么设置窗体标题之类的?
四、怎么在MyForm类里,加入退出按钮?
五、fm.Show()一闪而过,VFP可以用READ EVENTS,VB用什么办法解决?只能ShowDialog()吗?我感觉不应该,肯定还是关于类的一些知识,没学透啊。。。右下角那个标记,一看就不是正经的窗体。