标签文本在 C++/CLR Windows 表单上没有改变

Label Text not changing on C++/CLR Windows Forms

我正在使用 .NET Framework 4.0 在 Visual Studios Community 2019 上开发一个小型 C++/CLR Windows Forms 项目,其中我有一个组合框和一个标签。

下面的代码片段工作正常:

private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
            label1->Text = "comboBox1->Text";
        }

但是如果我在label1->Text = "comboBox1->Text";后面加上一个Sleep(1000);,我希望标签在休眠期之前改变,但是在休眠期结束后它会改变。

一般来说,label1->Text = "comboBox1->Text"; 会在该行下方的任何内容之后执行。

对于下面的代码片段,我希望程序在更改 label1 文本后休眠。

private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
            label1->Text = "comboBox1->Text";
            Sleep(1000);
        }

我明白你的意思了。要实现这个功能,你需要使用一个timer。您需要在您的 WinForm 中添加一个 timer,然后在计时器 属性 中将 Interval 值设置为 1000。你需要使用Start来启动定时器,你可以参考我的代码。

this->timer1->Interval = 1000;

this->timer1->Tick += gcnew System::EventHandler(this, &MyForm::timer1_Tick);

timer1->Start();

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { label1->Text = comboBox1->Text; }