C# button.visible=真的意外错误

C# button.visible=真的意外错误,c#,windows,C#,Windows,我正在做一个有计时器的项目。当计时器结束时,我正在执行一些指令,并将按钮的可见性设置为true。 这一行导致错误 "Invalid parameter" in Program.cs at line Application.Run(new Main()); 我不知道一个按钮的可视性的简单改变怎么会导致这里的错误 代码如下: private void timerDuring_Tick(object sender, EventArgs e) { if (timeLeft > 0)

我正在做一个有计时器的项目。当计时器结束时,我正在执行一些指令,并将按钮的可见性设置为true。 这一行导致错误

"Invalid parameter" in Program.cs at line
Application.Run(new Main());
我不知道一个按钮的可视性的简单改变怎么会导致这里的错误

代码如下:

private void timerDuring_Tick(object sender, EventArgs e)
{
    if (timeLeft > 0)
    {
        timeLeft = timeLeft - 1;
        labelTime.Text = timeLeft +"";
    }
    else
    {   
        TimerDuring.Stop();
        labelTime.Visible = false;
        VCapture.Dispose();
        VCapture = null;

        capture.Dispose();

        CamImageBox.Visible = false;

        String pathVideo = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "video.avi");
        WMP.Visible = true;
        WMP.URL = pathVideo;   //Emplacement de la video apres la capture
        WMP.uiMode = "none";
        WMP.settings.setMode("loop", true);
        WMP.Ctlcontrols.play();   // chaque image a recup

        btnDecoupe.Visible = true; // ERROR caused  HERE
        btnReplay.Visible = true;  // ERROR caused  HERE
   }   
}
以及Program.cs,其中错误由Visual Studio指示:

static class Program
{
    /// <summary>
    /// Point d'entrée principal de l'application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Main());
    }
}
静态类程序
{
/// 
///主要应用程序入口点。
/// 
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
运行(newmain());
}
}
当我将
可见性
更改为
false
时,它会工作,只有当我将其更改为true时才会抛出错误


我的表单名为“Main.cs”

您应该只在UI线程上操作控件。您可以拨打以下电话:


将其设置为false时也要执行相同的操作。任何时候,您想在不同线程中更改控件的某些内容,例如在计时器事件中。

您使用的是哪个计时器?c#名为TimerDuring的计时器控件是Windows.Forms.timer、System.Threading.timer还是System.timer
Invoke(new Action(() =>
    {
        btnDecoupe.Visible = true;
        btnReplay.Visible = true;
    }));