| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 1713 人关注过本帖
标题:vb.net怎么用代码创建一个Form,再添加一个退出按钮?
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1296
专家分:6147
注 册:2010-7-5
结帖率:92.39%
  已结贴   问题点数:100  回复次数:6   
vb.net怎么用代码创建一个Form,再添加一个退出按钮?
vb.net怎么用代码创建一个Form,再添加一个退出按钮?
感觉这样写类代码,对类的理解和控件属性、方法的理解,会加深很多。
就像我以前问的VFP问题那样:
https://bbs.bccn.net/thread-459302-1-1.html
2018-02-15 12:26
xyxcc177
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:22
帖 子:145
专家分:970
注 册:2017-7-8
  得分:50 
程序代码:

public class from1
  Private WithEvents myForm As Form
  Private WithEvents btn As Button
 Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
  myForm = New Form
        btn = New Button
        With btn
            .Text = "退出"
            .Height = 30
            .Width = 60
            .Top = 100
            .Left = 120
        End With
        With myForm
            .Text = "新建窗体"
            .Controls.Add(btn)
            .ShowDialog()
        End With
 End Sub
 Private Sub btn_Click(sender As System.Object, e As System.EventArgs) Handles btn.Click
        MsgBox("这是我用代码新建的Form")
        myForm.Close()
 End Sub

End Class
2018-02-15 16:29
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1296
专家分:6147
注 册:2010-7-5
  得分:0 
回复 2楼 xyxcc177
还是没有弄明白,我打开“新建项目”,应该选“Windows 应用程序”,还是“控制台应用程序”,还是“空项目”,还是其他的?

在什么地方输入你的代码呢?

百度了一下“vb.net用代码创建主窗体”,还真没有比较好的答案。

求详细解释和步骤,谢谢!

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2018-02-15 21:19
xyxcc177
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:22
帖 子:145
专家分:970
注 册:2017-7-8
  得分:0 
windows应用程序,覆盖名为form1的代码,运行就行了。
2018-02-15 21:39
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1296
专家分:6147
注 册:2010-7-5
  得分:0 
回复 4楼 xyxcc177
用你的方法试了一下,出现的是两个窗体。一个是代码创建的,还有一个是“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()吗?我感觉不应该,肯定还是关于类的一些知识,没学透啊。。。右下角那个标记,一看就不是正经的窗体。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2018-02-16 01:08
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1296
专家分:6147
注 册:2010-7-5
  得分:0 
回复 5楼 不懂才问
看来我又把时间都花在钻牛角尖上面了。。。

[此贴子已经被作者于2018-2-16 13:38编辑过]

附件: 您没有浏览附件的权限,请 登录注册

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2018-02-16 01:09
zcsor
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:19
专家分:105
注 册:2018-2-5
  得分:50 
其实你做的工作不是窗体设计器做的吗,它可视化了不比写代码方便么。
你点击解决方案管理器上面的“显示全部文件”,点击解决方案管理器里面窗体文件左面出来箭头打开树形结构,可以发现在窗体文件下面有一个同名的设计文件,自动生成的代码都在那里。

一本好的基础书籍还是应该看的,系统的学习还是必须的。
附件: 您没有浏览附件的权限,请 登录注册
2018-02-16 10:26







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024676 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved