ฉันมีปัญหาเดียวกันและพบวิธีแก้ไขปัญหาต่าง ๆ โดยการนำไปใช้ซึ่งฉันเคยเผชิญกับปัญหาที่แตกต่างกันหลายประการ ในที่สุดด้านล่างคือสิ่งที่ฉันใส่บางส่วนจากโพสต์ที่แตกต่างกันซึ่งทำงานให้ฉันตามที่คาดไว้
private void btnCompare_Click(object sender, EventArgs e)
{
ThreadStart threadStart = new ThreadStart(Execution);
Thread thread = new Thread(threadStart);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
นี่คือวิธีการดำเนินการที่มีการเรียกใช้ตัวควบคุม PictureBox ด้วย:
private void Execution()
{
btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = true; });
Application.DoEvents();
// Your main code comes here . . .
btnCompare.Invoke((MethodInvoker)delegate { pictureBox1.Visible = false; });
}
โปรดทราบว่า PictureBox จะมองไม่เห็นจากหน้าต่างคุณสมบัติหรือทำด้านล่าง:
private void ComparerForm_Load(object sender, EventArgs e)
{
pictureBox1.Visible = false;
}