4

マウスオーバーのツールチップに改行を入れる方法を見つけようとしています

表示したい

完全-外部からの完全な上書き部分-外部からの非空白のみを上書きしますいいえ-空白のセルにのみデータを入力します

完全-外部からの完全な上書き
部分-外部からの非空白のみを上書きします
いいえ-空白のセルにのみデータを入力します

これを行う方法はありますか

Excel2010を使用する

4

3 に答える 3

0

私はそれを簡単にしようとしました(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
于 2014-03-14T22:50:44.193 に答える
0

プロパティの改行/キャリッジ リターンは、ControlTipTextExcel では単純に無視されます。可能な回避策は、関連付けられたコントロールとユーザーフォームのイベントの両方を使用して可視性を切り替える非表示の複数行ラベル (ツールチップのようにフォーマットされている) を持つことです。MouseMoveつまりSomeControl_MouseMove、ラベルをParentForm_MouseMove表示し、再び非表示にします (おそらく遅延後)。ユーザーがポインタを非常に速く動かした場合、このアプローチは少しうまくいかなかったりする可能性があります。もう1つの(より良い、IMHO)解決策は、フォームのどこかに永続的に表示されるラベルまたはテキストボックスオブジェクトを配置することです。そのキャプション/値は、現在マウスポインターの下にあるコントロールに応じて変化し、再びMouseMoveイベントを使用します。

編集: ツールチップがコンボボックス/リストボックス コントロールに関連付けられていると思われる場合は、オプションの説明をコントロール内の 2 列目に配置することを検討してください。

于 2013-02-13T18:22:38.253 に答える