我在使用图片框作为按钮时遇到了一些困难。我想要自定义按钮图形,而不是使用普通的 Windows 窗体 Button 控件。
它工作得很好,除了快速按下单个按钮时按钮似乎滞后。我希望每次单击图片框时立即调用 OnClick 方法,但它似乎正在注册一个双击事件,即使我没有使用该事件。
简短的版本是我想:
- (理想)禁用双击事件,因为这似乎是控件在每次交替单击图片框时等待的内容,而我从不使用它。或者,
- (可接受)编写一个通用的 DoubleClick 事件,我可以将其用于我计划用作按钮的所有图片框。
我确实编写了一个测试程序,它表明这实际上是正在发生的事情。我编写了一个使计数器加 1 的 MouseUp 事件,并且还添加了一个 OnClick,即使它使不同的计数器加 1。当快速单击链接到这些事件的图片框时,MouseUp 计数器正好是 OnClick 计数器的两倍。
然后我添加了一个调用 OnClick 事件的 DoubleClick 事件。这虽然不理想,但很好地解决了这个问题。如果有办法编写所有按钮都可以使用的通用 DoubleClick 事件,我认为这是可以接受的。
现在我的 DoubleClick 事件只是
private void pb_DoubleClick(object sender, EventArgs e)
{
pbOK_Click(sender, e); //This needs to be generic
}
我想至少用类似的东西替换 DoubleClick 行
private void pb_DoubleClick(object sender, EventArgs e)
{
(Sender.ToString)_Click(sender, e); // Doesn't work quite like this.
}
我可以为每个图片框单独编写一个特殊的 DoubleClick 事件,但这远非理想,而且看起来很麻烦,所以如果没有必要,我宁愿不这样做。
这是我第一个发布的问题,所以感谢任何花时间阅读本文的人。任何建议将不胜感激。
编辑:这个程序是为 Windows CE 开发的,所以对象的属性和事件选项非常有限。我仍然可能遗漏了一些东西,但据我所知,按钮的属性列表直接从 GenerateMember 到 Location,没有可用的 Image 选项。对于没有在原帖中说明目标平台,我深表歉意。