c#面板背景色变化缓慢(或事件缓慢)
我正在用c#制作VS2013游戏《策划者》的变体。我的问题是,我制作了4个小面板,人们可以点击来设置代码。当他们单击面板时,会启动一个事件,该事件会更改面板的背景颜色。我的问题是如果我点击面板,颜色变化太慢。当您尝试快速滚动颜色时,这一点最为明显。切换到下一个需要半秒钟的时间。除了颜色的改变,我已经试着对我在事件中所做的每一点代码进行注释,但是没有帮助,所以我不认为代码运行时间太长。有人有这方面的经验吗 编辑: 使用Visual Studio 2013中的标准表单 这是你们有些人要的密码。。。不过不多c#面板背景色变化缓慢(或事件缓慢),c#,performance,events,panel,backcolor,C#,Performance,Events,Panel,Backcolor,我正在用c#制作VS2013游戏《策划者》的变体。我的问题是,我制作了4个小面板,人们可以点击来设置代码。当他们单击面板时,会启动一个事件,该事件会更改面板的背景颜色。我的问题是如果我点击面板,颜色变化太慢。当您尝试快速滚动颜色时,这一点最为明显。切换到下一个需要半秒钟的时间。除了颜色的改变,我已经试着对我在事件中所做的每一点代码进行注释,但是没有帮助,所以我不认为代码运行时间太长。有人有这方面的经验吗 编辑: 使用Visual Studio 2013中的标准表单 这是你们有些人要的密码。。。不
private void InputCode1Clicked(object sender, EventArgs e)
{
code1++;
if (code1 > 5)
{
code1 = 0;
}
this._input1.BackColor = ENUMS.GetColor((ENUMS.color)code1);
_controller.InputCodeClicked(sender, e, 1);
}
请记住,即使是这样:
private void InputCode1Clicked(object sender, EventArgs e)
{
this._input1.BackColor = ENUMS.GetColor((ENUMS.color)code1);
}
它仍然运行缓慢…修复了它!使用mouseDown事件而不是mouseclicked/clicked事件解决了我的问题 MouseDown有帮助,因为当快速单击时,您可能每秒都会得到双击,而不是单击。鼠标向下不会受到双击的影响。如果看不到您的代码,就很难对如何提高性能提出建议。在此处添加一些代码将是明智之举,以便有人可以查看并向您提供优化建议。您使用的是哪种UI框架?WPF?银灯?Windows运行时?WinForms?问题代码是什么样子的?考虑使用一个按钮,而不是显式的点击操作,这样你就能自动地处理键盘,我怀疑一个事件会比另一个慢。一旦触发,代码仍然会排队等待UI线程。我相信你提到的慢是因为点击事件只有在你释放按钮后才会触发,而MouseDown会在你按下按钮时立即触发。但最好的学习方法是经常先失败:)