我有我的UserControl,我附加了它的点击事件,所以我可以设置它的边框样式。
public partial class TestControl : UserControl
{
public TestControl()
{
InitializeComponent();
this.Click += Item_Click;
IsSelected = false;
}
public bool IsSelected { get; set; }
void Item_Click(object sender, EventArgs e)
{
if (!IsSelected)
{
IsSelected = true;
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
}
else
{
IsSelected = false;
this.BorderStyle = System.Windows.Forms.BorderStyle.None;
}
}
}
当我点击UserControl
时,我会分配或删除它的边框样式......这样可以正常工作。但是,如果我尝试点击更快,当我点击UserControl时它没有响应。
如果我点击一次,然后等待再次点击它就可以完美,但我想增加点击响应时间,就好像它是一个按钮一样。
关于我如何有这种行为的任何线索?
答案 0 :(得分:3)
如果您点击非常快,则会收到双击事件。请尝试使用MouseDown事件。
但由于这是UserControl的基本事件,您可以覆盖该方法而不是附加事件处理程序:
protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left) {
// your code here...
}
}