マウスオーバーのツールチップに改行を入れる方法を見つけようとしています
表示したい
完全-外部からの完全な上書き部分-外部からの非空白のみを上書きしますいいえ-空白のセルにのみデータを入力します
に
完全-外部からの完全な上書き
部分-外部からの非空白のみを上書きします
いいえ-空白のセルにのみデータを入力します
これを行う方法はありますか
Excel2010を使用する
私はそれを簡単にしようとしました(APIなし、非常に短いコード):
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'If Events Then
Dim list_index As Long, Zero As Long
Zero = Me.ListBox1.TopIndex
list_index = Y \ (8 + 2) + Zero ' ; 8 si the size of Font ; note \ is a integer division
'Me.label1 = Y 'test label
'Me.label2 = list_index 'test label
'Me.label3 = Zero 'test label
With Me.ListBox1
.ControlTipText = .List(list_index, 1)
End With
'End If
End Sub
プロパティの改行/キャリッジ リターンは、ControlTipText
Excel では単純に無視されます。可能な回避策は、関連付けられたコントロールとユーザーフォームのイベントの両方を使用して可視性を切り替える非表示の複数行ラベル (ツールチップのようにフォーマットされている) を持つことです。MouseMove
つまりSomeControl_MouseMove
、ラベルをParentForm_MouseMove
表示し、再び非表示にします (おそらく遅延後)。ユーザーがポインタを非常に速く動かした場合、このアプローチは少しうまくいかなかったりする可能性があります。もう1つの(より良い、IMHO)解決策は、フォームのどこかに永続的に表示されるラベルまたはテキストボックスオブジェクトを配置することです。そのキャプション/値は、現在マウスポインターの下にあるコントロールに応じて変化し、再びMouseMove
イベントを使用します。
編集: ツールチップがコンボボックス/リストボックス コントロールに関連付けられていると思われる場合は、オプションの説明をコントロール内の 2 列目に配置することを検討してください。