tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7451
投稿日: 2008/05/07(Wed) 10:53
投稿者ぺんてる
はじめまして。

今Windows CE 5.0 + VB2005(VB.NET Compact Framework 2.0)でテストアプリを
作っております。
今回初めてWindows CEのプログラムを作成する初心者のため、いきなりListView
コントロールのDetailsスタイルで躓いています(^^;

PC用のVB.NETでは、
ListView1.Items.Add("Item1")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("Item2")
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("Item3")
このような感じでアイテムとサブアイテムを追加できていたのですが、
VB.NET Compact Framework 2.0で同様のことを実装しようとすると、
ListView1.Items.Add("Item1")の部分で、
型'String'の値を'System.Windows.Forms.ListViewItem'に変換できません。と
エラーになってしまいます。
どうもVB.NET Compact FrameworkではAddメソッドの引数にString型が使えない
ようなのですが、どのようにすればアイテムとサブアイテムを追加することが
できるのでしょうか?

ご教示宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7452
投稿日: 2008/05/07(Wed) 11:14
投稿者るしぇ
ListViewItem を New で自分で作ればいいのでは?
[ListViewItem コンストラクタ]
http://msdn.microsoft.com/ja-jp/library/106x1f70(VS.80).aspx

[ツリー表示へ]
タイトルRe^2: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7457
投稿日: 2008/05/07(Wed) 12:58
投稿者ぺんてる
るしぇ様、レスありがとうございます。

以下のような感じで無事に解決できました。
ありがとうございました。

Dim i As Integer
ListView1.Items.Clear()
For i = 1 To 10
    Dim NewItem As New ListViewItem("Item" + CStr(i) + "_1")
    NewItem = ListView1.Items.Add(NewItem)
    NewItem.SubItems.Add("Item" + CStr(i) + "_2")
Next i

最初はListViewItemをForの外でNewして使いまわそうとしたのですが
実行時にエラーになったのでForの内部でNewするようにしました。
もし何か問題がありそうでしたらご指摘いただければ幸いです。

[ツリー表示へ]
タイトルRe^3: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7459
投稿日: 2008/05/07(Wed) 15:33
投稿者るしぇ
>実行時にエラーになったのでForの内部でNewするようにしました。
原因が分かって、それを改善するために今のコードになったのであれば、
今のコードがどういう意味を持っているか理解できてるでしょうから、
問題あるかどうかも自分で判断できるのでは?

逆に、理解できていなくて適当に変更したら動いたというのであれば、
その考え方が問題になるのでは?

[ツリー表示へ]
タイトルRe: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7454
投稿日: 2008/05/07(Wed) 11:31
投稿者ダンボ
> PC用のVB.NETでは、
> ListView1.Items.Add("Item1")
> ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("Item2")
> ListView1.Items(ListView1.Items.Count - 1).SubItems.Add("Item3")
> このような感じでアイテムとサブアイテムを追加できていたのですが、

  Dim NewItem As New ListViewItem
  NewItem = ListView1.Items.Add("Item1")
  NewItem.SubItems.Add("Item2")
  NewItem.SubItems.Add("Item3")

こんな感じでどうでしょう(手書きなのでエラーあったら失礼)

[ツリー表示へ]
タイトルRe^2: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7455
投稿日: 2008/05/07(Wed) 12:05
投稿者るしぇ
>   NewItem = ListView1.Items.Add("Item1")
質問者の説明を信じるなら
ListView1.Items.Add("Item1")
のコード自体が実行時エラーで使えないということでは?

Compact Framework の環境が無いので試せないですが。

[ツリー表示へ]
タイトルRe^2: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7456
投稿日: 2008/05/07(Wed) 12:48
投稿者ぺんてる
ダンボ様、レスありがとうございます。

PC用のコードとしてはご教示いただいたコードの方が最適化されていて参考になりました。
しかし、るしぇ様からもレスをいただいておりますがVB.NET Compact Framework 2.0では
引数がListViewItem型のAddメソッドしか実装されておらず、String型の引数はエラーと
なるようです…。
Compactと付くとかなり不便になるようですね(^^;

[ツリー表示へ]
タイトルRe^2: VB.NET Compact Framework 2.0でListView(Details)に項目を追加するには
記事No7584
投稿日: 2008/05/21(Wed) 17:00
投稿者ご〜〜
お初にお目にかかります。
ご〜〜と申します。

        '初期設定(適当です)
        ListView1.View = View.Details
        ListView1.Columns.Add("ITEM1", 50, HorizontalAlignment.Left)  
        ListView1.Columns.Add("ITEM2", 120, HorizontalAlignment.Left)
        ListView1.Columns.Add("ITEM3", 120, HorizontalAlignment.Left)

    'アイテム追加
        Dim lst As ListViewItem = New ListViewItem
        lst.Text = "DATA1"
        lst.SubItems.Add("DATA2")
        lst.SubItems.Add("DATA3")
        ListView1.Items.Add(lst)

Compact Frameworkならこんなんでどうでしょう?

[ツリー表示へ]