【问题标题】:Add tooltip to a dynamically created tabpage将工具提示添加到动态创建的标签页
【发布时间】:2014-08-29 10:51:38
【问题描述】:

我在尝试使用工具提示时遇到了困难。 我正在尝试向选项卡控件中的每个动态创建的选项卡添加具有不同文本的工具提示。 需要注意的是,此选项卡是从包含 tabcontrol 所在的停靠表单的表单创建的。 这是一个带有停靠区域的主表单,我在其中停靠了一个结果表单,其中包含一个 - 最初为空 - 选项卡控件。 当您启动应用程序时,此结果表单不存在,每当用户按下主表单的某些部分时,我也会动态创建它,每个部分都在结果表单 tabcontrol 中创建为一个新选项卡。

这就是我生成标签的方式:

      generateResultForm();

      TabPage newtp = new TabPage("Nuevo paciente")
      _result.TabControl.TabPages.Add(newtp);

      newtp.Name = setTabName("np");

现在,我尝试在结果表单中添加一个工具提示,然后尝试通过在下面添加类似_result.ResultsTooltip.SetToolTip(newtp, "Creación de un nuevo paciente."); 的内容来首先生成工具提示,但没有成功。然后,由于一旦创建了选项卡,它就会被选中,我尝试通过 tabcontrol 的 selectedindexchange 事件中的 WorkareaTooltip.SetToolTip(tabControl.SelectedTab, "Cosas"); 将其添加到结果类中。 我认为这不是一个很好的解决方案,但我不知道还能尝试什么。

当然,tabcontrol 的 ShowToolTips 属性设置为 true。

如果有人可以帮助我,那就太好了。

感谢阅读,如有语言错误请见谅:)

//已编辑

这是我实际使用的代码(但不起作用)

TabPage newtp = new TabPage("Nuevo paciente");
_workareaform.TabControl.TabPages.Add(newtp);
newtp.Name = "np";
var tooltip = new ToolTip();
tooltip.SetToolTip(newtp, "Creación de un nuevo paciente.");

现在,它不起作用,可能是因为整个配置。 为了清楚起见,此选项卡位于 TabControl 中,该 TabControl 位于停靠在另一个 Form 中的 dockContainer 中的 Form 中。 如果有的话,这是一张图片。

http://i.imgur.com/fVz6e06.png

如您所见,根本没有工具提示。

【问题讨论】:

    标签: c# dynamic tooltip tabcontrol


    【解决方案1】:

    您是否尝试过如下设置ToolTipText 属性?它对我有用。

    _result.TabControl.ShowToolTips = true;
    TabPage newtp = new TabPage("Nuevo paciente");
    _result.TabControl.TabPages.Add(newtp);
    newtp.ToolTipText = "this is tooltip";
    

    【讨论】:

      【解决方案2】:

      如果您正在使用其他表单,则需要引用其他表单 TabControl

      在这个示例中,我从Form2 创建了一个Form1 实例(其中包含TabControl),然后添加页面和工具提示。

      private void Form2_Load(object sender, EventArgs e)
      {
          //instantiate another form
          var f1 = new Form1();
      
          //find tabcontrol on new form
          var tc = (TabControl) f1.Controls["tabControl1"];
      
          //create page
          TabPage newtp = new TabPage("Nuevo paciente");
          newtp.Name = "Paciente1";
          tc.TabPages.Add(newtp);
      
          //add tooltip
          var tt1 = new ToolTip();
          tt1.SetToolTip(newtp, "paciente 1 tooltip");
      
      
          //show other form
          f1.Show();
      }
      

      【讨论】:

      • 是的...那不起作用 ^^u 我认为这是因为我是从另一个表单创建选项卡,而不是包含它的表单。
      • @Iskalla 现在检查我的编辑,您没有理由不能在另一个表单上创建工具提示。你做错了什么
      • 我已经检查过了,我只是看不出你的代码和我的代码有什么区别(当然不算名字)我会休息一下,稍后再试一次你的解决方案,我一定有一些我没有看到的错误。
      • @Iskalla 你能给我看一张你的结果表格的截图吗?也许您正在向错误的控件添加工具提示(不可见的东西)
      • 抱歉花了这么长时间,但我一直忙于这个项目的其他部分,没有时间看这个。我已经用它的外观图像编辑了主要帖子,并发布了我当前使用的代码
      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多