Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 更改splashscreen中的文本_Vb.net_Timer_Splash Screen - Fatal编程技术网

Vb.net 更改splashscreen中的文本

Vb.net 更改splashscreen中的文本,vb.net,timer,splash-screen,Vb.net,Timer,Splash Screen,我在VB.Net中创建了一个splashscreen,除了我想用多个文本来更改加载文本,这些文本在加载过程中每x秒更改一次之外,其他一切都很完美 示例:Dim LoadingTexts As String={“charging 1…”、“charging 2…”、“info1…” 我不知道我如何才能做到这一点,除了事实上,我肯定要使用计时器。。。但是怎么做呢 实际代码: Public Class frmSplashScreen Private stringTable() As Strin

我在VB.Net中创建了一个splashscreen,除了我想用多个文本来更改加载文本,这些文本在加载过程中每x秒更改一次之外,其他一切都很完美

示例:
Dim LoadingTexts As String={“charging 1…”、“charging 2…”、“info1…”

我不知道我如何才能做到这一点,除了事实上,我肯定要使用计时器。。。但是怎么做呢

实际代码:

Public Class frmSplashScreen
   Private stringTable() As String = {"Shovelling coal into the server...", "Programming the flux capacitor...", _
                                      "Searching for answer to live, the universe and everything...",
                                      "Waiting for Godot...", "Starting..."}
   Private stringMove As Integer = 0

    Sub New()
        InitializeComponent()
    End Sub

    Public Overrides Sub ProcessCommand(ByVal cmd As System.Enum, ByVal arg As Object)
        MyBase.ProcessCommand(cmd, arg)
    End Sub

    Public Enum SplashScreenCommand
        SomeCommandId
    End Enum

    Public Sub SplashTimer_Tick(sender As Object, e As EventArgs) Handles SplashTimer.Tick
        Me.SplashTimer.Enabled = False

        Me.labelStarting.Text = stringTable(stringMove)
        Me.labelStarting.Refresh()

        stringMove += 1
        If stringMove < stringTable.Length Then Me.SplashTimer.Enabled = True
    End Sub
End Class
公共类frmSplashScreen
Private stringTable()作为字符串={“将煤炭铲入服务器…”,“对通量电容器进行编程…”_
“寻找生命、宇宙和一切的答案……”,
“等待戈多…”,“开始…”
私有字符串作为整数移动=0
次新
初始化组件()
端接头
Public重写子ProcessCommand(ByVal cmd作为System.Enum,ByVal arg作为Object)
MyBase.ProcessCommand(cmd,arg)
端接头
公共枚举命令
某物指挥官
结束枚举
公共子SplashTimer_Tick(发送方作为对象,e作为事件参数)处理SplashTimer.Tick
Me.SplashTimer.Enabled=False
Me.labelStarting.Text=stringTable(stringMove)
Me.labelStarting.Refresh()
stringMove+=1
如果stringMove

谢谢。

如果需要每X秒更改一次,请使用计时器。更改标签的
.Text
属性:

Dim iLoadText As Integer = 0

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    Timer1.Enabled = False

    Label1.Text = LoadingTexts(iLoadText)
    Label1.Refresh()

    iLoadText += 1
    If iLoadText < LoadingTexts.Length Then Timer1.Enabled = True
End Sub
Dim iLoadText作为整数=0
私有子Timer1\u Tick(发送方作为对象,e作为事件参数)处理Timer1.Tick
Timer1.Enabled=False
Label1.Text=加载文本(iLoadText)
Label1.Refresh()
iLoadText+=1
如果iLoadText
如果需要每X秒更改一次,请使用计时器。更改标签的
.Text
属性:

Dim iLoadText As Integer = 0

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    Timer1.Enabled = False

    Label1.Text = LoadingTexts(iLoadText)
    Label1.Refresh()

    iLoadText += 1
    If iLoadText < LoadingTexts.Length Then Timer1.Enabled = True
End Sub
Dim iLoadText作为整数=0
私有子Timer1\u Tick(发送方作为对象,e作为事件参数)处理Timer1.Tick
Timer1.Enabled=False
Label1.Text=加载文本(iLoadText)
Label1.Refresh()
iLoadText+=1
如果iLoadText
假设您有一个计时器、进度条、按钮和标签,并且进度条的步长值设置为10,那么您的代码可能如下所示:

公共类表单1

Private Sub butStart_Click(sender As System.Object, e As System.EventArgs) Handles butStart.Click
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    ProgressBar1.Increment(ProgressBar1.Step) 'use method below as well
    'ProgressBar1.Value+=ProgressBar1.Step


    Me.Refresh()

    If ProgressBar1.Value >= 0 AndAlso ProgressBar1.Value < 35 Then
        Label1.Text = ProgressBar1.Value & "% Starting"
        Me.Refresh()
    ElseIf ProgressBar1.Value >= 35 AndAlso ProgressBar1.Value < 75 Then
        Label1.Text = ProgressBar1.Value & "% Mid value"
        Me.Refresh()
    ElseIf ProgressBar1.Value >= 75 AndAlso ProgressBar1.Value < 100 Then
        Label1.Text = ProgressBar1.Value & "% Finishing"
        Me.Refresh()
    ElseIf ProgressBar1.Value = 100 Then
        Timer1.Enabled = False
        'Move to next form or something
    End If
End Sub
Private Sub-butStart\u单击(发送方作为System.Object,e作为System.EventArgs)处理butStart。单击
Timer1.Enabled=True
端接头
私有子Timer1_Tick(发送方作为System.Object,e作为System.EventArgs)处理Timer1.Tick
ProgressBar1.Increment(ProgressBar1.Step)也可以使用下面的方法
'ProgressBar1.Value+=ProgressBar1.Step
我
如果ProgressBar1.Value>=0,并且ProgressBar1.Value<35,则
Label1.Text=ProgressBar1.Value&%Starting
我
ElseIf ProgressBar1.Value>=35,并且同样ProgressBar1.Value<75
Label1.Text=ProgressBar1.Value&%Mid Value
我
ElseIf ProgressBar1.Value>=75,并且ElseIf ProgressBar1.Value<100
Label1.Text=ProgressBar1.Value&%Finishing
我
ElseIf ProgressBar1.Value=100然后
Timer1.Enabled=False
“转到下一个表格或别的什么
如果结束
端接头

End Class

假设您有一个计时器、进度条、按钮和标签,并且进度条的步长值设置为10,那么您的代码可能如下所示:

公共类表单1

Private Sub butStart_Click(sender As System.Object, e As System.EventArgs) Handles butStart.Click
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    ProgressBar1.Increment(ProgressBar1.Step) 'use method below as well
    'ProgressBar1.Value+=ProgressBar1.Step


    Me.Refresh()

    If ProgressBar1.Value >= 0 AndAlso ProgressBar1.Value < 35 Then
        Label1.Text = ProgressBar1.Value & "% Starting"
        Me.Refresh()
    ElseIf ProgressBar1.Value >= 35 AndAlso ProgressBar1.Value < 75 Then
        Label1.Text = ProgressBar1.Value & "% Mid value"
        Me.Refresh()
    ElseIf ProgressBar1.Value >= 75 AndAlso ProgressBar1.Value < 100 Then
        Label1.Text = ProgressBar1.Value & "% Finishing"
        Me.Refresh()
    ElseIf ProgressBar1.Value = 100 Then
        Timer1.Enabled = False
        'Move to next form or something
    End If
End Sub
Private Sub-butStart\u单击(发送方作为System.Object,e作为System.EventArgs)处理butStart。单击
Timer1.Enabled=True
端接头
私有子Timer1_Tick(发送方作为System.Object,e作为System.EventArgs)处理Timer1.Tick
ProgressBar1.Increment(ProgressBar1.Step)也可以使用下面的方法
'ProgressBar1.Value+=ProgressBar1.Step
我
如果ProgressBar1.Value>=0,并且ProgressBar1.Value<35,则
Label1.Text=ProgressBar1.Value&%Starting
我
ElseIf ProgressBar1.Value>=35,并且同样ProgressBar1.Value<75
Label1.Text=ProgressBar1.Value&%Mid Value
我
ElseIf ProgressBar1.Value>=75,并且ElseIf ProgressBar1.Value<100
Label1.Text=ProgressBar1.Value&%Finishing
我
ElseIf ProgressBar1.Value=100然后
Timer1.Enabled=False
“转到下一个表格或别的什么
如果结束
端接头

结束类

使用计时器更改
开始…
标签的
文本
属性。不要忘记调用
DoEvents
更改
启动…
标签的
文本属性。别忘了调用
DoEvents
什么不起作用?抛出错误吗?什么都不做?你已经开始计时了吗?(默认设置为
Enabled=False
)抱歉,我发布了我的代码以提供更多详细信息。默认情况下,我的计时器在
Enabled=True
上,但它保持在
上“启动…”
我将尝试使用
控制台。Writeline
查看计时器是否正常使用
控制台。Writeline
什么不工作?抛出错误吗?什么都不做?你已经开始计时了吗?(默认设置为
Enabled=False
)抱歉,我发布了我的代码以提供更多详细信息。默认情况下,我的计时器在
Enabled=True
上,但不在
上“Starting…”
我将尝试使用
控制台。Writeline
查看计时器是否正常。Writeline
控制台也没有任何问题。顺便说一句,如果这个答案对您有效,请不要忘记将其作为您接受的答案进行检查。也只需拖动窗体上的计时器,添加一个间隔时间,双击它即可访问其滴答事件谢谢您的帮助但我的程序