【问题标题】:Given a .net control, can I get the tooltip?给定一个 .net 控件,我可以获得工具提示吗?
【发布时间】:2013-03-08 06:32:47
【问题描述】:

我有一个 .net 控件(好的,很多)。我可以在任何给定控件上调用方法,但不能创建新控件或访问我没有控件的类的静态方法。我无权访问任何工具提示对象。有什么方法可以获取给定控件的工具提示对象?

(我们在 Java 中使用相当受限的测试自动化框架来访问用 C#.net 编写的应用程序的控件,这是这个奇怪查询背后的背景)

ETA:也许我没有说清楚。我不是要设置工具提示,而是要获取现有的工具提示。而且我无法创建新控件,因此包含new Foo() 的任何内容都无法正常工作。

【问题讨论】:

  • 底层 Windows 消息是 TTM_GETTOOLINFO。如果控件支持工具提示,您将获得一个 TOOLINFO 填充。没有控制方法。
  • @HansPassant 您的评论比当前任何答案都更有帮助。我很感兴趣。
  • 我非常了解这个问题,知道我无法回答。不知道“Java 中的受限测试自动化框架”能做什么。
  • @HansPassant 调用方法并获取控件上的属性 :( 我认为答案是“你不能在这里做你想做的事”,所以我必须更深入地研究替代方法。

标签: c# .net winforms


【解决方案1】:
string text = toolTip1.GetToolTip(yourControl);

这将为您提供 yourControl 工具提示上的文本。

【讨论】:

    【解决方案2】:

    看来这是不可能的。 :( 要获得控件的工具提示,我需要访问 ToolTip 类,如果我正在对控件进行编程但没有真正公开,这很好。

    【讨论】:

      【解决方案3】:

      你可以这样做

      System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
      ToolTip1.SetToolTip(this.textBox1, "Hello");
      

      【讨论】:

        【解决方案4】:

        添加弹出事件。下面的代码正在获取为工具提示设置的值,并在 MDIForm 上显示一个状态文本框。

            private void toolTip1_Popup(object sender, PopupEventArgs e)
            {
                Control TheControl = e.AssociatedControl;
                cls_Global.gf_MDIForm.DisplayMsg(this.toolTip1.GetToolTip(TheControl) + "");
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-11
          • 1970-01-01
          • 2014-04-24
          • 2011-10-04
          • 2021-12-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多