C# 持续检查usercontrol中的按钮是否已单击

C# 持续检查usercontrol中的按钮是否已单击,c#,winforms,events,user-controls,event-handling,C#,Winforms,Events,User Controls,Event Handling,我有一个类名为PinPad的用户控件。它包含一个按钮,我处理了它的click事件btnGetAccess\u click(objectsender,EventArgs e)和一个属性,用于读取在文本框中输入的密码 我把PinPad控件的一个实例放在我的Form1上,当点击按钮并且密码正确时,它应该会打开Form2 因为我把它放在构造函数中,所以当前检查密码没有任何作用,因为它只会在Form1加载时检查密码,而且还没有输入密码 那么,在单击用户控件类中的按钮后,如何使Form1连续检查密码 这是我

我有一个类名为PinPad的用户控件。它包含一个
按钮
,我处理了它的click事件
btnGetAccess\u click(objectsender,EventArgs e)
和一个属性,用于读取在
文本框中输入的
密码

我把
PinPad
控件的一个实例放在我的
Form1
上,当点击按钮并且密码正确时,它应该会打开
Form2

因为我把它放在构造函数中,所以当前检查密码没有任何作用,因为它只会在
Form1
加载时检查密码,而且还没有输入密码

那么,在单击用户控件类中的按钮后,如何使
Form1
连续检查密码

这是我目前的代码:

public Form1()
{
    InitializeComponent();
    if (pinPad1.Password == "123456")
    {
        // open form2
    }
}

使用。有一个很好的例子。实现它,并且在正确输入和检查密码后不要忘记停止计时器。

您不需要连续单击按钮。创建事件以订阅它们。然后,当事件发生时,他们会通知您

您应该在用户控件中创建一个新事件,并在用户控件中的按钮单击时引发它。然后您可以在表单中订阅该事件并在那里运行您的逻辑

示例:

[System.ComponentModel.DefaultEvent("ButtonClicked")]
public partial class SampleControl: UserControl
{
    public SampleControl()
    {
        InitializeComponent();
        button1.Click += button1_Click;
    }

    public event EventHandler ButtonClicked;
    protected virtual void OnButtonClicked(EventArgs e)
    {
        var handler = ButtonClicked;
        if (handler != null)
            handler(this, e);
    }
    private void button1_Click(object sender, EventArgs e)
    {
        //Do Stuff then raise event
        OnButtonClicked(EventArgs.Empty);
    }
}
您可以将控件放在窗体上,并处理其
按钮单击事件。由于我们将
按钮Clicked
设置为控件的默认事件,因此当您在designer中双击它时,它将创建事件处理程序并订阅事件:

private void sampleControl1_ButtonClicked(object sender, EventArgs e)
{
    MessageBox.Show("Button Clicked");
}

作为一名C#开发人员,您应该尽可能多地了解事件的类、方法、属性等。您可以了解更多信息。

您是否尝试过将整个if语句移动到按钮的click eventhandler中?是的,但我无法从usercontrol中打开和关闭表单。它必须在form1课程中完成。非常不清楚你想要实现什么。。。如果您需要一直运行代码,请使用Timer(您可能已经阅读了很多关于它的问题)。我只需要将If语句放在构造函数之外的某个位置,这样它就会多次检查密码。现在,我的代码只在表单加载时检查密码,但密码为空(尚未输入)。您不需要连续单击按钮来检查密码。创建事件以订阅它们。然后当一个事件发生时,他们会通知你。非常感谢你,这帮了大忙。我以前不知道DefaultEvent,你是我的英雄!