tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルリストビューの内容をコピーするには
記事No5365
投稿日: 2007/04/19(Thu) 08:51
投稿者VB小僧
お世話になります。
2つのフォーム(Form1,Form2)があり、それぞれにリストビューを配置しています。
Form1から呼び出したForm2内で表示しているリストビューの内容をForm2が閉じた際に、
Form1のリストビューへ反映したいと思っています。

方法として、Publicで外部変数を立てておいて、一時的にデータを保持しておくのが最良なのでしょうか?

リストビューの内容を簡単にコピーする方法を知っている方がいらっしゃったら教えていただきたく。

よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: リストビューの内容をコピーするには
記事No5366
投稿日: 2007/04/19(Thu) 10:17
投稿者魔界の仮面弁士
環境が書かれていないので、現行バージョンである VB2005 と仮定して回答します。

> Form1から呼び出したForm2内で表示しているリストビューの内容をForm2が閉じた際に、
> Form1のリストビューへ反映したいと思っています。

こういうイメージで良いのかな。

'==== 呼び出し側 (Form1) ====
Private WithEvents form2 As Form2 = Nothing

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If form2 Is Nothing OrElse form2.IsDisposed Then
        form2 = New Form2()
        form2.Show(Me)
    End If
End Sub

Private Sub form2_FeedbackListViewItems(ByVal items() As ListViewItem) Handles form2.FeedbackListViewItems
    ListView1.Items.Clear()
    ListView1.Items.AddRange(items)
End Sub


'==== 呼ばれる側 (Form2) ====
Public Event FeedbackListViewItems(ByVal items() As ListViewItem)

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles MyBase.FormClosing
    With New List(Of ListViewItem)
        For Each item As ListViewItem In ListView1.Items
            .Add(DirectCast(item.Clone(), ListViewItem))    'データを複製
        Next
        RaiseEvent FeedbackListViewItems(.ToArray())
    End With
End Sub

[ツリー表示へ]
タイトルRe^2: リストビューの内容をコピーするには
記事No5382
投稿日: 2007/04/19(Thu) 16:40
投稿者VB小僧
さっそくの返答ありがとうございました。
環境を書き忘れていたようです。VB2005で開発中です。

まさにその通りの内容です。コレを元に自身のプログラムに合わせていきたいと思います。

魔界の仮面弁士さん、ありがとうございました。


> 環境が書かれていないので、現行バージョンである VB2005 と仮定して回答します。
>
> > Form1から呼び出したForm2内で表示しているリストビューの内容をForm2が閉じた際に、
> > Form1のリストビューへ反映したいと思っています。
>
> こういうイメージで良いのかな。
>
> '==== 呼び出し側 (Form1) ====
> Private WithEvents form2 As Form2 = Nothing
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
>     If form2 Is Nothing OrElse form2.IsDisposed Then
>         form2 = New Form2()
>         form2.Show(Me)
>     End If
> End Sub
>
> Private Sub form2_FeedbackListViewItems(ByVal items() As ListViewItem) Handles form2.FeedbackListViewItems
>     ListView1.Items.Clear()
>     ListView1.Items.AddRange(items)
> End Sub
>
>
> '==== 呼ばれる側 (Form2) ====
> Public Event FeedbackListViewItems(ByVal items() As ListViewItem)
>
> Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles MyBase.FormClosing
>     With New List(Of ListViewItem)
>         For Each item As ListViewItem In ListView1.Items
>             .Add(DirectCast(item.Clone(), ListViewItem))    'データを複製
>         Next
>         RaiseEvent FeedbackListViewItems(.ToArray())
>     End With
> End Sub

[ツリー表示へ]