关于VB.NET窗体的问题!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于VB.NET窗体的问题!相关的知识,希望对你有一定的参考价值。

我用VB.NET写了一个软件!其中有部分代码如下:
(开始form1显示,然后隐藏form1,在显示form2)
me.hide
form2.show
就这样!为什么form2显示之后!不仅form1没有隐藏,反而一关闭form1整个程序就会关闭是怎么回事!以前还好好的!最近改了一下代码就发现这样了
(form1中没有使程序关闭的语句)

你把代码写在 Activated 事件中试验一下,写在 Load 事件中肯定不能隐藏form1窗体。
Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated

Me.Hide()
Form2.Show()
End Sub

至于一关闭form1整个程序就会关闭,是因为你的form1是主窗体,你找到Application.Designer.vb这个文件,默认应该都有,这里面有这样的代码
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.WindowsApplication1.Form1
End Sub
从代码Me.MainForm = Global.WindowsApplication1.Form1中可以看出Form1()是主窗体,如果你想改变主窗体,那么只要修改对应的Form。
参考技术A 你不要用Form1做为启动窗口就不会这样了

告诉你解决方法:
1.添加新项-"模块"
2.在新建的模块文件里建立一个函数,及其代码如下:
Sub Main()
Application.EnableVisualStyles()

Dim frm1 As New Form1
frm1.Show()
frm1.Refresh()

Dim frm2 As New Form2
frm2.Show()
frm2.Refresh()

frm1.Hide()
Application.Run()
End Sub
3.在项目属性-应用程序-启动窗体 那里选择"Sub Main"
4.在你需要程序退出的地方加一句:
Application.Exit()

搞定!本回答被提问者采纳
参考技术B 开始form1显示 也就是说form1 是主窗口,那么当它关闭时肯定会对出整个程序。
如果你一定要先隐藏form1 那 me.hide不要写在load事件里 回为它还没显示 隐藏后还会再显示。。你可以用 Shown 那就没问题了。
参考技术C form2.show
me.hide

这样就行了

关于VB.NET进度条的实例

我想编一个进度条程序,让它每0.5秒进度增加1%,并用文本显示当前的进度,该如何实现?

该实例有很多实现方法,下面介绍一种不同的给你:
首先要在窗体中载入以下控件:progressbar(进度条),label(用来实时显示文本提示),两个timer(分别控制进度条进度的增减),然后用以下代码就能实现:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
Timer1.Interval = 500
Timer2.Interval = 500
ProgressBar1.Value = 0
ProgressBar1.Maximum = 100
ProgressBar1.Minimum = 0
End Sub
'上述过程是设置控件的初始值,也可以在属性面板设置
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Value += 1
Label1.Text = "当前完成" & ProgressBar1.Value & "%"
If (ProgressBar1.Value = 100) Then
Timer1.Enabled = False
Timer2.Enabled = True
End If
End Sub
'timer1用来控制进度的增加
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
ProgressBar1.Value -= 1
Label1.Text = "当前完成" & ProgressBar1.Value & "%"
If (ProgressBar1.Value = 0) Then
Timer1.Enabled = True
Timer2.Enabled = False
End If
End Sub
'time2用来控制进度的减少
End Class
参考技术A 给你个参考一下
private sub progressbar_run()
dim i, re as integer
me.progressbar1.maximum = 5000
me.progressbar1.minimum = 1
me.progressbar1.step = 1
me.progressbar1.value = 1
for i = 1 to 5000
系统处理过程:
next
me.progressbar1.value = 1
end sub

以上是关于关于VB.NET窗体的问题!的主要内容,如果未能解决你的问题,请参考以下文章

关于VB.NET进度条的实例

VB.NET求帮忙!...

VB.NET窗体阴影

vb.net中Windows窗体应用程序中的折线图

关于VB.NET进度条的实例

使用VB.NET的五个技巧之窗体嵌套