为了账号安全,请及时绑定邮箱和手机立即绑定

创建一个变量来验证按钮事件处理程序是否被单击

创建一个变量来验证按钮事件处理程序是否被单击

C#
跃然一笑 2023-07-23 14:01:01
我有一些按钮事件处理程序,我需要验证它们是否被单击。我试图在事件中放入一个布尔值,但由于有多个按钮,我需要布尔值在每次退出事件时重置。我尝试将布尔值放入事件中,但它仅适用于单个按钮:public void verify(){    if (this.textBox.Text != null &&            this.comboBox.Text != null            && (button bool here)          )    {        tabControl.SelectedIndex = 2;    }    else    {        MessageBox.Show("Enter parameters");    }}如果没有单击所有按钮,我希望 bool 为 false,并且在所有按钮至少单击一次后为 true。private void Button_Click(object sender, EventArgs e){    Form temp = new Form(Image);    temp.ShowDialog();    int x = temp.x;    int y = temp.y;    int w = temp.w;    int h = temp.h;}这是一个示例按钮,不同页面上可能还有 20 个类似的按钮。单个页面上平均有 4 到 5 个按钮。验证按钮点击的最佳方法是什么?
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

实现此目的的一种方法是将这些bool字段封装到一个表示程序状态的类中,以及一个计算属性,true如果所有其他字段都是 则返回该计算属性true。


例如:


class ProgramState

{

    public bool UserAcceptedAgreement { get; set; }

    public bool UserAcknowledgedLiability { get; set; }

    public bool UserSubmittedSignature { get; set; }


    public bool EverythingAccepted =>

        UserSubmittedSignature &&

        UserAcknowledgedLiability &&

        UserSubmittedSignature;

}

然后,您可以在您的类中创建此类的实例Form,并通过按钮单击事件设置属性,并在方法中Verify检查它们在if语句中是否全部为 true:


public partial class Form1 : Form

{

    private ProgramState programState = new ProgramState();


    public Form1()

    {

        InitializeComponent();

    }


    private void btnAcceptAgreement_Click(object sender, EventArgs e)

    {

        programState.UserAcceptedAgreement = true;

    }


    private void btnAcceptLiability_Click(object sender, EventArgs e)

    {

        programState.UserAcknowledgedLiability = true;

    }


    private void btnSubmitSignature_Click(object sender, EventArgs e)

    {

        programState.UserSubmittedSignature = true;

    }


    public void verify()

    {

        if (programState.EverythingAccepted)

        {

            tabControl.SelectedIndex = 2;

        }

        else

        {

            MessageBox.Show("Enter parameters");

        }

    }

}


查看完整回答
反对 回复 2023-07-23
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信