1

我在与用户控件绑定的名为 CreateAlarm.cs 的类中的 Visual Studio 中看到以下错误。

'跨线程操作无效:控件'CreateAlarm'从创建它的线程以外的线程访问。

此代码在以下方法上调用:

private void ClearPanel()
{
    panel1.Controls.Clear();
}

程序运行的方式是,这行代码是清除用户控件面板的方法,然后通过从用户控件内调用主窗体上的方法来添加更多用户控件。

调用此方法导致问题(导致错误时)的代码如下:

void CreateAlarm_TimeElapsed()
{
    ClearPanel();
    Alarm alarmScreen = new Alarm(); // this creates an instance of the user control
    AddToPanel(alarmScreen);
}

此代码实际上是从带有事件和委托的用户控件中调用的。

问题是单独页面的相同代码导致问题。我认为这可能是因为代码是由使用 System.Timers 结束的计时器运行的。

有没有人对可能是什么问题有任何想法?或有关错误消息的潜在原因的其他信息?

谢谢 :)

4

0 回答 0