更改文本标签asp net

时间:2016-09-13 18:39:15

标签: c# visual-studio thread-sleep

如何在运行程序或函数时更改asp.net visual basic中的文本标签。 例如,当项目验证某些内容时,标签会说同样的内容。 (对不起,我不会说英语)

1 个答案:

答案 0 :(得分:3)

我认为你要做的是: - 拥有一种状态标签,其中包含更改文本,具体取决于当前任务 - 在应用程序线程上执行过程/函数(例如按下按钮)

如何处理?: 我这样做的方式如下: 要求: - 连接到表单计时器 - 一个按钮和一个标签(仅用于我的例子)

以下是我的方法的代码:

private String currentStatus = "Idle";
    /*
    *   Use this while working with Lists or other kinds of arrays
    *   private object syncObject = new object();
    */
    private void button1_Click(object sender, EventArgs e)
    {
        // Keep in mind that you should disable the button while the thread is running
        new Thread(new ThreadStart(DoTask)).Start();
    }

    private void DoTask()
    {
        /*
        *   If you are working with Lists for example
        *   you should use a lock to prevent modifications
        *   while actually iterating the list.
        *   Thats how you use it:
        *   lock(syncObject){// You can do it for a single or a bunch of list actions
        *       list.Add(item); 
        *   }
        */
        currentStatus = "Waiting...";
        Thread.Sleep(1000);
        currentStatus = "Scanning...";
        Thread.Sleep(1000);
        currentStatus = "Extracting data...";
        Thread.Sleep(1000);
        currentStatus = "Done!";
    }

    private void tickTimer_Tick(object sender, EventArgs e)
    {
        statusLabel.Text = currentStatus;
    }

请记住: 您无法更改任何 Control 值,例如标签文本或其他线程中的其他值!这就是为什么我使用这个 String 字段。

我希望它有所帮助:)