ピース上に表示されているTextの内容を、MouseMoveイベントで取得したいのですが取得できません。
逆に、Textに追加(現在表示Text & “Test”)を行うと文字が重なってしまいます。
1イベント内でのTextの設定直後に取得する場合は正常に取得できるのですが、別イベントからCaptionを設定し、取得する事がうまく行きません。

対応

(例)ピース上にマウスポインターが動くと、テキストボックスにキャプションが表示され、ピースを選択してクリックするとそのピースキャプションに文字列「+」記号をappendします。

Private Sub Form_Load()
Dim itm As KnTViewLib.Item
Dim pce As KnTViewLib.Piece
Dim pcap As PieceCaption
Dim i As Integer

For i = 1 To 10
Set itm = KnTView1.Items.Add
Set pce = itm.Pieces.Add
pce.Start = DateAdd(“h”, 1, KnTView1.ViewTopTime)
pce.Finish = DateAdd(“h”, 3, pce.Start)

Set pcap = pce.Captions.Add
pcap.Text = pce.ItemIndex & “, ” & pce.Index & ” ”
Next
End Sub

Private Sub KnTView1_Click()
Dim pce As KnTViewLib.Piece
Dim pcap As PieceCaption

For Each pce In KnTView1.SelectedPieces
Set pcap = pce.Captions(1)
‘クリックによって選択したピースのキャプションに文字”+”を追加
pcap.Text = pcap.Text & “+”
Next
End Sub

Private Sub KnTView1_MouseMove( _
ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Long, _
ByVal Y As Long)
Dim htr As HitTestResult
Dim pce As Piece

txtTest.Value = “”

Set htr = KnTView1.HitTest(X, Y)
If htr.ObjectType = tivPiece Then
‘マウスポインタ下のピースを取得
Set pce = KnTView1.Items(htr.ItemIndex).Pieces(htr.PieceIndex)
‘ピースのキャプションを取得してテキストボックスに表示
txtTest.Value = pce.Captions(1).Text
End If
End Sub