【问题标题】:touch screen clear status message on any touch触摸屏在任何触摸时清除状态消息
【发布时间】:2011-09-06 12:55:33
【问题描述】:

我正在开发一个带有许多复选框、文本框、列表框、日期下拉选择器等的触摸屏窗体。根据用户操作,状态消息会显示在底部。例如,您的个人资料保存成功,从和到日期不能相同,请选择一个有效的...等

什么是清除任何触摸状态消息的优雅方式。

if (statusLabel.text != string.empty )
    statusLabel.text = string.empty)  

意味着如果选中任何复选框,在文本框中输入任何文本,选择任何列表框或组合...然后我想清除状态标签。这样,最后的状态消息就不会“粘”到让用户感到困惑。我正在四处寻找是否可以在一个可以执行此操作的地方覆盖表单级别的某些事件。

谢谢


感谢 Saravanan 和 Pedery 的建议。他们没有解决我的问题。我刚刚发现了反应式扩展并发布了一个可能对我有帮助的相关问题。 Left mouse button click detect on winform using Reactive extensions IObservable on events

【问题讨论】:

    标签: c# winforms user-interface user-controls touchscreen


    【解决方案1】:
    1. 尝试在状态栏中查找事件本身,例如文本更改或内容更改等。覆盖它以清除自身的内容。

    2. 您可以编写代码清除控件容器更改事件的状态栏内容。

    这是你的选择。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这是我的问题的解决方案

        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);
        }
        

        【讨论】:

          猜你喜欢
          • 2015-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多