Tôi có bộ hẹn giờ và tôi muốn đặt lại các cuộc gọi hẹn giờ thành các chức năng riêng biệt, tuy nhiên, tôi gặp phải lỗi này.Cần có một tham chiếu đối tượng để truy cập thành viên không tĩnh
Một tham chiếu đối tượng được yêu cầu để truy cập vào lĩnh vực phi tĩnh, phương pháp, hoặc tài sản '' ...
Nếu Tôi cam đoan những callbacks như các sự kiện đại biểu và biến thành viên như tĩnh, nó hoạt động khỏe. Tôi có nên để nó theo cách đó không?
class MainClass
{
private Timer _timer = null;
private TimeSpan _millisecs;
public static void Main (string[] args)
{
Application.Init();
MainWindow win = new MainWindow();
Label lbl = new Label();
lbl.Text = "00:00";
Table tbl = new Table(2, 2, true);
tbl.Name = "tbl";
Button btn = new Button("Start");
tbl.Attach(lbl, 0, 2, 0, 1);
tbl.Attach(btn, 0, 1, 1, 2);
Button btn_stop = new Button("Stop");
tbl.Attach(btn_stop, 1, 2, 1, 2);
btn.Clicked += StartClick;
btn_stop.Clicked += StopClick;
win.Add(tbl);
win.ShowAll();
Application.Run();
}
private void StartClick(object obj, EventArgs args)
{
if (_timer == null) {
_timer = new Timer();
_timer.Elapsed += delegate(object sender, ElapsedEventArgs e) {
_millisecs = _millisecs.Add(new TimeSpan(0, 0, 0, 0, 50));
lbl.Text = new DateTime(_millisecs.Ticks).ToString("ss:ff");
};
_timer.Interval = 50;
_timer.Enabled = true;
}
_timer.Start();
}
private void StopClick(object obj, EventArgs args)
{
_timer.Stop();
}
}
tại sao không sử dụng Application.Run (new MainWindow()); sau đó đăng ký các sự kiện bên trong lớp học? – aspark