【问题标题】:visual basic when form loads, make something show表单加载时的visual basic,显示一些东西
【发布时间】:2016-01-19 06:40:16
【问题描述】:

尝试让 Label1 在表单加载时显示,延迟后。然后在Label1显示之后,试图让Label2显示,经过进一步的延迟。两者都不适用于睡眠或延迟。

这是我的代码:

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    System.Threading.Thread.Sleep(5000)
    Label1.Show()
    Delay(2)

    Label2.Show()
End Sub

【问题讨论】:

  • 移动 Form_Shown 事件中的所有内容。在 Form_Load 中,您的表单不可见。
  • 如何创建这两个标签?

标签: vb.net winforms


【解决方案1】:

这最终奏效了:

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Button1.Visible = False
    Button2.Visible = False


End Sub
Private Sub Form1_Show(sender As Object, e As EventArgs) Handles MyBase.Shown
    Delay(5)
    Button1.Visible = True
    Delay(5)
    Button2.Visible = True
End Sub

结束类

【讨论】:

    【解决方案2】:

    您最好的选择是在表单加载时将标签初始化为隐藏,然后当表单SHOWN时,您将运行您的代码...

    编辑:我意识到 OP 想要连续显示标签,而不是在延迟后一次全部显示...

        public int i = 1; // public variable as a counter
    
        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Visible = false; // start the labels as not visible.
            label2.Visible = false;
        }
    
        private void Form1_Shown(object sender, EventArgs e)
        {
    
            timer1.Start(); // start up the timer.
        }
    
        private void timer1_Tick(object sender, EventArgs e)
        {
            // initialize a timer that iterates through the labels provided
            // and set them to visible.
            while(i <= 2)
            {
    
                Label test = (Label)this.Controls["label" + i.ToString()];
                test.Visible = true;
                i++;
                break;
            }
        }
    

    【讨论】:

    • 问题是用VB标记的(从OP的代码来看,确实是在使用什么),为什么要使用C#来回答?
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    相关资源
    最近更新 更多