C# 任何触摸屏上的触摸屏清除状态信息

C# 任何触摸屏上的触摸屏清除状态信息,c#,winforms,user-interface,user-controls,touchscreen,C#,Winforms,User Interface,User Controls,Touchscreen,Iam在触摸屏windows窗体上工作,该窗体有许多复选框、文本框、列表框、日期下拉选择器等。根据用户操作,状态消息显示在底部。例如,您的个人资料保存成功,起始日期和截止日期不能相同,请选择有效的。。。等 在任何触摸中清除状态信息的优雅方式是什么 if (statusLabel.text != string.empty ) statusLabel.text = string.empty) 这意味着,如果选中任何复选框,在文本框中输入任何文本,选择任何列表框或组合…那么我想清除状态标

Iam在触摸屏windows窗体上工作,该窗体有许多复选框、文本框、列表框、日期下拉选择器等。根据用户操作,状态消息显示在底部。例如,您的个人资料保存成功,起始日期和截止日期不能相同,请选择有效的。。。等

在任何触摸中清除状态信息的优雅方式是什么

if (statusLabel.text != string.empty )
    statusLabel.text = string.empty)  
这意味着,如果选中任何复选框,在文本框中输入任何文本,选择任何列表框或组合…那么我想清除状态标签。这样,最后一条状态消息不会“粘住”用户。我正在四处摸索,看看是否可以在一个地方覆盖表单级别的某个事件,这样做

谢谢


谢谢你的建议。他们不能解决我的问题。我刚刚发现了被动扩展,并发布了一个相关问题,这可能会对我有所帮助

  • 尝试在状态栏本身中查找事件,如文本更改或内容更改等。覆盖它以清除自身的内容

  • 您可以编写代码来清除控件容器的更改事件上的状态栏内容


  • 这是您的选择。

    您可以将消息放在控件的标记属性中,并使用单个公共事件将它们全部相加


    如果你想更加有序,你可以用同样的方法用自定义属性对复选框进行子类化。

    这就是我问题的解决方案

    protected override void WndProc(ref Message msg)
    {
        switch(msg.Msg)
        {
            case WM_LBUTTONDOWN:
            //Do something here
                 break;
            //add other cases if needed
    
        }
    
        // call the base class WndProc for default message handling
        base.WndProc(ref msg);
    }