如何使用 if-else 语句检查按钮点击历史? C#

Posted

技术标签:

【中文标题】如何使用 if-else 语句检查按钮点击历史? C#【英文标题】:How to check button click history using if-else statements ? C# 【发布时间】:2017-01-04 09:08:11 【问题描述】:

我一共有4个表格(Form1,form2,form3,form4)。 3个按钮(Form 1有2(Button1,Button2),form 2有1(Button3))

我的情况如下:

Form1 中的两个按钮都指向form2,但标签输入不同。 我想要做的是当我的按钮 3 被点击时,如果 else 循环将确定按钮通向什么形式(form3,form4)。如果按钮 1 被点击,按钮 3 将指向 form3,否则按钮 3 将指向 form4。

我不知道在问这个问题时我应该在哪里以及我的代码的哪一部分包含,所以我认为我应该只输入按钮代码。

这是button1代码:

public void DIModuleButton_Click(object sender, System.EventArgs e)

    //  MessageBox.Show("TEST");
    alloDI();
    FormSerial frm = new FormSerial();
    frm.MyProperty = ALL;
    frm.Show();


public void alloDI()

    ALL = "DI";

这是 button2 代码:

public void DOModuleButton_Click(object sender, EventArgs e)

    alloDO();
    FormSerial frm = new FormSerial();
    frm.MyProperty = ALL;
    frm.Show();


public void alloDO()

    ALL = "DO";

【问题讨论】:

您知道可以重命名按钮吗?在设计器中选择一个控件,在属性中将其名称更改为有意义的名称。它不一定是带有数字的按钮 @M.kazemAkhgary 他们都有自己的名字,为了便于理解,我在问题中将它们称为 button1 和 button2 :) 【参考方案1】:

一个简单的解决方案是使用布尔标志,因为您只需区分 2 个按钮。

将一个新的bool 属性放入您的第二个表单,就像您对MyProperty 所做的那样。

在Form2中:

public bool Button1_pressed  get; set; 

在按钮点击事件中,您可以相应地设置它:

public void DIModuleButton_Click(object sender, System.EventArgs e)

    //  MessageBox.Show("TEST");
    alloDI();
    FormSerial frm = new FormSerial();
    frm.MyProperty = ALL;
    frm.Button1_pressed = true;
    frm.Show();

在第二个你将它设置为 false

当你按下第三个按钮时,你可以检查这个变量。

如果您有超过 2 个按钮,我建议使用 enum 和 switch case 来检查不同的情况:

该属性如下所示:

public ButtonSource MyButton_Clicked  get; set; 

// here your enum
public enum ButtonSource

    button1,
    button2,
    button3,
    button4

还有开关盒:

switch (MyButton_Clicked)

    case ButtonSource.button1:
        break;
    case ButtonSource.button2:
        break;
    case ButtonSource.button3:
        break;
    case ButtonSource.button4:
        break;
    default:
        break;

【讨论】:

如果我需要区分 3 个按钮而不是 2 个按钮,这仍然有效吗?按钮 1 会导致表单 3,按钮 2 会导致表单 4,另一个附加按钮“button3”(在表单 1 中)会导致额外的表单 5。 @MuhammedNizamBinKamarudeen 不幸的是不是,因为bool 只能是truefalse,对于更多按钮我写了一个不同的建议。检查我的编辑 我试试这个然后回复你!非常感谢! 您好,我遇到了这个案例的一些问题,目前即使我陈述了我的案例,我按下表格 1 的任何按钮都只会导致案例 1,而不是案例 2 或 3。我该怎么做pm你我的代码? @MuhammedNizamBinKamarudeen 您可以提出一个新问题并发布您的代码,我们会重新审视它。您是否选择了 ENUM 的解决方案?您还可以在线分享您的代码并将链接发布在评论中。

以上是关于如何使用 if-else 语句检查按钮点击历史? C#的主要内容,如果未能解决你的问题,请参考以下文章

C#点击button如何弹出里一个窗体

如何检查“单选按钮”是不是被选中?

我应该如何在 awk 中使用 if-else 语句?

if-else 语句中的 GIF

在哪看到手机历史更新日志

switch 语句中的 String 如何比相应的 if-else 语句更有效?