2017-03-14 14 views
0

ファイルの送信元アドレス(ユーザーシステムから)と宛先アドレス(2列、マルチプレイ選択= false)を含むリストビューがあります。リストビューで項目を選択するときにツールチップテキストを変更する

送信元アドレスはかなり長いようであるかもしれないので:

D:\ルート\支社\ BRANCH2 \ branch3 \ branch4 \

MYFILE.DAT最初の列がちょうど示しています

D:\ ... \ MYFILE.DAT

実際のパスはListViewItem.Tagに格納されます

ユーザーが選択したアイテムをクリック(または変更)するたびにパス全体を表示するツールチップが必要です。私はこれで出てきた:

今、ツールチップは変更されますが、常に1つの選択をスキップします。それは次のとおりです。

項目1選択
  • :ツールチップは、アイテム2を選択し、正しく

  • を示しています。ツールチップは、項目3を選択

  • を表示しない:ツールチップが正しく項目を選択

  • を示してし5:ツールチップが表示されない

  • 選択項目2:ツールチップが正しく表示されます(選択最初に表示されなかった項目2に戻りました)

ご存じですか?

PS:私は、Visual Studioコミュニティ2015

PPSを使用しています:私もView.Details(列とヘッダの両方を表示するように)に設定Viewプロパティを持っている必要があり、そう

動作しない ShowItemToolTip = Trueを設定

現在の解決方法

回避策が見つかって、ツールチップコントロールを破棄して再作成しました。今度はすべてのアイテムにツールチップが正しく表示されます:

Private myTooltip As ToolTip 
    Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged 
     If myTooltip IsNot Nothing Then myTooltip.Dispose() 
     myTooltip = New ToolTip 
     For Each locItem As ListViewItem In ListView1.SelectedItems 
      myTooltip.SetToolTip(ListView1, locItem.Tag) 
     Next 
    End Sub 

私はまだ最初のアプローチではスキップしています。

答えて

0

ListViewには、ShowItemToolTips(https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.showitemtooltips(v=vs.110).aspx)というプロパティがあります。これをtrueに設定し、ListViewItemのToolTipTextプロパティを長いパスに設定することができます。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
    ListView1.ShowItemToolTips = True 

    Dim lvi1 As New ListViewItem With {.Text = "d:\..\myFile.dat", .Tag = "d:\myLongPath\myFile.dat", .ToolTipText = .Tag} 
    Dim lvi2 As New ListViewItem With {.Text = "d:\..\myFile2.dat", .Tag = "d:\myLongPath\myFile2.dat", .ToolTipText = .Tag} 

    ListView1.Items.Add(lvi1) 
    ListView1.Items.Add(lvi2) 
End Sub 
+0

私はビューの設定として** View.Details **を持っている必要があります。 あなたが提案するものは、** View.List **モードでのみ動作します。 私の悪い私はより具体的ではなかった – Caligola

関連する問題