2016-06-24 10 views
1

ListViewの各行のテキストを取得し、反復タイル/ボタン に割り当てようとしています。私が書いたコードは残念なことに最後の行のみを取り出し、それをすべての 繰り返しタイルに印刷します。 (TilesはDevExpressです - 途中で第三者のcompsですが、ここでは焦点はありません)リストビューを反復処理して、反復ボタンにメインアイテムとサブアイテムのテキストを割り当てる方法

たとえば、リストビューには次の2行が含まれています(それ以上の場合もあります)。

Name | Country | City 
--------------------------- 
Sam | Japan | Tokyo 
Dexter | Italy | Rome 

ので、私が求めるものを、このように繰り返しタイル/ボタン上に印刷する機能である:

最初のタイルのTEXT:
サム
日本 東京

SECONDタイルのTEXT: デクスター
イタリア
ローマ

これは私のコードです:

Dim strTileInfo As String = Nothing 

    For Each tile As TileItem In TheTileControl.Items 'My iteration code through the tiles/buttons 

     strTileInfo = Nothing 
     tile.Text = Nothing 

     'My attempt to assign each row of the ListView main item and subitem texts 
     'i.e. Each row to each button 
     For i = 0 To ListView.Items.Count - 1 
      strTileInfo = ListView.Items(i).Text & vbCrlf & ListView.Items(i).SubItems(1).Text 
      tile.Text = strTileInfo 
     Next 

    Next 

私はあなたの援助のために非常に感謝するでしょう。ありがとうございました。

+0

タイルの数はリストビュー内のアイテムの数と同じですか?ちなみに、あなたの問題は、各タイルのすべてのリストアイテムをループし、常に最後のリストアイテムの値にタイルキャプションを設定するためです。 –

+0

hello Robin。私は本当にその日からそれを理解しようとしています。コードで私をサポートできる人がいれば嬉しいです。私は論理を評価しようとしている間に読書を続けていますが、まだそれを解決していないと私の側に時間はありません。この段階での例が非常に役立ちます。 – SamuelDexter

答えて

0

コードは最後の行のみを取り出し、すべての繰り返しタイルで出力します。各タイルでは、最後の要素にListViewを渡し、後者には要素が割り当てられます。このコードを試してください:

Dim strTileInfo As String = Nothing 

Dim i As Integer = 0 
For Each tile As TileItem In TheTileControl.Items 
    strTileInfo = Nothing 
    tile.Text = Nothing 

    If i < ListView.Items.Count Then 
     strTileInfo = ListView.Items(i).Text & vbCrLf & ListView.Items(i).SubItems(1).Text 
     tile.Text = strTileInfo 
     i += 1 
    End If 

Next 
+0

マジックのように動作します! Abdellahさん、本当にありがとうございます。 :) – SamuelDexter

+0

あなたを助けてうれしい!これで問題が解決した場合は、回答を受け入れたものとしてマークしてください。こちらこそありがとう :) –