我正在尝试创建一个允许驻留时间点击的.NET应用程序。这部分已经实施,并且通常以您期望的方式运作。
这是控制我的自定义控件中的停留时间的计时器:
private void dwellTimeEvent(object sender, ElapsedEventArgs e)
{
gr.FillRectangle(new SolidBrush(Color.FromArgb(127,128,128,128)), new Rectangle(0, this.Height - heightCounter, this.Width, this.Height / elapseDivide));
if (heightCounter > this.Height * 12 / 10)
{
//this.ALSButton_Click(sender, e); // calls the click event programmatically rather than through an actual click
this.OnClick(e);
}
else
{
heightCounter += this.Height / elapseDivide;
}
}
这是调用上面自定义控件的click事件的主GUI表单:
private void setBut_Click(object sender, EventArgs e)
{
MessageBox.Show("Debug"); //make sure this method is being called
this.WindowState = FormWindowState.Maximized;//this doesn't work with dwell timing and I don't know why
/*this.Invalidate();
this.Update();
this.Refresh();
Application.DoEvents();*/
}
我在评论中展示了我尝试的所有不同的东西。消息框出现点击或等待计时器到期,但表单不会最大化,除非我实际点击它(而不是让计时器运行)。我真的很困惑为什么会这样。
另一个奇怪的事情是,每当我尝试使用断点调试它时,它就像我预期的那样工作;停留时间使形式最大化。这让我相信GUI可能并不令人耳目一新,所以我尝试了上面所有不同的命令(无效,刷新等),但没有一个有效果。
答案 0 :(得分:0)
确保您使用的是System.Windows.Forms.Timer而不是System.Timers.Timer