【问题标题】:How To: Hover Over Shape Shows TextBox如何:将鼠标悬停在形状上显示文本框
【发布时间】:2016-12-15 18:34:54
【问题描述】:

我正在尝试这样做,当用户将鼠标悬停在如下所示的三角形上时,会弹出一个文本框,其中包含与该三角形有关的某些信息。

用下面的函数绘制三角形...

Public Sub drawTriangle(theRow As Integer, theColumn As Integer, Optional myColor As System.Drawing.Color = Nothing)
        myColor = System.Drawing.Color.Black
        Dim theShape As Microsoft.Office.Interop.Excel.Shape = xlWorkSheet.Shapes.AddShape(MsoAutoShapeType.msoShapeIsoscelesTriangle, (xlWorkSheet.Cells(theRow, theColumn)).Left + 18, (xlWorkSheet.Cells(theRow, theColumn)).Top, 15, 14)
        theShape.Fill.ForeColor.RGB = ToBgr(myColor)
        theShape.Line.ForeColor.RGB = ToBgr(myColor)

    End Sub

我还没有找到任何关于我将如何做到这一点的示例或好的文档,所以我想我会在这里问。非常感谢任何和所有的帮助!

【问题讨论】:

  • 这些信息是只读的吗?如果是这样,您可以将其作为附加到三角形的注释对象吗?
  • @vbnet3d 它将是只读的...您所描述的听起来就像只要它在悬停时显示并在未悬停时消失就完美了
  • 根据MSDN,您可以向范围添加评论 - 不确定形状。
  • @vbnet3d 我明白你在说什么,这将非常有效......我将如何从单元格位置获取范围,例如(5,5)。在我刚刚使用的示例中,我做了xlWorkSheet.Range("E5").AddComment("Testing this out"),但我如何将 (5,5) 变成这样的字母和数字?
  • @vbnet3d 如果你在...回答我的帖子,我会接受它,因为你已经解决了我的问题

标签: excel vb.net hover draw shape


【解决方案1】:

根据MSDN,可以将 cmets 添加到范围。为此,您只需选择与您的形状对应的范围,然后调用 AddComment()。

可以使用单元格的数字坐标来确定实际的单元格名称(即 E5),方法是使用如下代码(source):

address = xlWorkSheet.Cells(RowVariable, ColVariable).Address

这可以跟进:

xlWorkSheet.Range(address).AddComment("This is a comment")

【讨论】:

  • 太棒了,我真的很感激。搞定了... 不得不问,有什么办法可以让评论框变大或者评论框字体变小?
  • 不幸的是,我对此没有任何经验 - 但由于它可以手动完成,我认为它必须通过互操作实现。 Start here,并注意注释有一个 Shape 属性。我希望你需要的东西可能就埋在那里的某个地方。
  • 啊,真漂亮。再次感谢!!
猜你喜欢
  • 1970-01-01
  • 2015-06-06
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
相关资源
最近更新 更多