所以我在C#程序中有这个很棒的pictureBox1。我每隔5秒钟就会调用一次这样的时间方法:
public Form1()
{
InitializeComponent();
aTimer = new System.Timers.Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
}
我正在尝试更改我获得的pictureBox对象的属性。但是在尝试这样做时我遇到了这个错误:
错误1非静态字段,方法或属性'Simma.Form1.pictureBox1'需要对象引用C:\ Users \ John \ Desktop \ Simma \ Simma \ Form1.cs 39 13 Simma
pictureBox1设置为Public。
答案 0 :(得分:1)
问题必须出在您未向我们展示的代码中......大概是OnTimedEvent
。
最简单的解决方法是使OnTimedEvent
成为实例方法。这不是可访问性问题(字段不应该公开 - 将其设为私有!)这是尝试使用实例字段的问题em> static 方法。
但请注意,您也不应尝试从非UI线程访问UI元素。目前,您的计时器将在不同的线程中触发其事件,从而导致跨线程问题。
最简单的解决方法是使用System.Windows.Forms.Timer
代替System.Timers.Timer
。