标签文本在 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; }
我正在使用 .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; }