C# Picturebox勾号事件行为不一致

C# Picturebox勾号事件行为不一致,c#,forms,events,timer,C#,Forms,Events,Timer,因此,在花了大量时间学习C语言之后,最近我一直在努力学习C语言编程。 很自然地,我马上就开始学习一些新东西,在这种情况下,我想尝试一些形式、课程和事件——很简单吧 显然不是,我很傻,我一直在运行程序,一步一步地分析滴答声事件的触发,但picturebox中的图片没有更新 这里是kicker,我做了一个按钮,运行几乎相同的代码,这很有效,给了什么?我几乎无法想象它是什么样子 -这是我当前正在运行的代码 下面是我无法实现的特定代码段 private void timer1_Tick(object s

因此,在花了大量时间学习C语言之后,最近我一直在努力学习C语言编程。 很自然地,我马上就开始学习一些新东西,在这种情况下,我想尝试一些形式、课程和事件——很简单吧

显然不是,我很傻,我一直在运行程序,一步一步地分析滴答声事件的触发,但picturebox中的图片没有更新

这里是kicker,我做了一个按钮,运行几乎相同的代码,这很有效,给了什么?我几乎无法想象它是什么样子

-这是我当前正在运行的代码

下面是我无法实现的特定代码段

private void timer1_Tick(object sender, EventArgs e)
    {
        if(swapper)
        {
            swapper = false;
            pictureBox1.Image = ima1;
            pictureBox1.Refresh();
        }
        else
        {
            swapper = true;
            pictureBox1.Image = ima2;
            pictureBox1.Refresh();
        }
    }

你的代码看起来不错,对我有用。我怀疑
Form1\u Load
方法没有连接到表单的
Load
事件;你可以在designer中查看。

好的,我找到了! 由于与设计文档不同,计时器被添加到了那里的勾号中,我自己也在代码中添加了它,结果是计时器立即触发两次,因此我没有看到任何结果


问题现在解决了,谢谢大家的热烈欢迎:)

欢迎来到SO!把所有相关的代码放在问题旁边,写下你的问题所在。为什么swapper变量是静态的?我猜你没有把加载事件连接起来。只需将“主”代码放入窗体的构造函数中。@Mathemats,OP确实将他认为相关的代码放入了窗体中。。。但我认为问题出在其他地方。@LarsTech谢谢你的提示,我一直在胡思乱想,可能是在我不知道怎么做的情况下,背景被改变了,所以我让它在那里静止了一会儿,这已经被改变回来了。-我移动了主代码。只是有点习惯于C中有一个Main。整个代码都在链接中。否则,你的代码,如发布的一样,可以工作。我的设计器中有一行,没有写“加载”:
this.Load+=new System.EventHandler(this.Form1_Load)
@Nodine,是的,我的意思是
Load
当然(WPF中的等效事件名为
Load
,所以它让我感到困惑……)