C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Listviewの値取得、変更について


(過去ログ 88 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■52508 / inTopicNo.1)  Listviewの値取得、変更について
  
□投稿者/ らーめんまん (1回)-(2010/08/12(Thu) 02:01:18)

分類:[.NET 全般] 

初めまして。
少々質問させてください。

VB.NET2005です。

@Listviewで選択した値をTextboxで取得する。
ATextbox内の値を変更する。
B変更した値を再びListviewに表示する。

というのものを作成しているのですが、Bの変更した値がListviewに上手く反映されません。


Dim temp0 As String = TextBox1.Text
Dim temp1 As String = TextBox2.Text
Dim temp2 As String = TextBox3.Text

Dim intRow As Integer = -1
If ListView1.SelectedItems.Count > 0 Then
intRow = ListView1.SelectedItems(0).Index
End If

ListView1.Items.RemoveAt(intRow)

ListView1.Items.Add(temp0, intRow)
ListView1.Items(intRow).SubItems.Add(temp1)
ListView1.Items(intRow).SubItems.Add(temp2)


よいロジックが思い浮かばなく、指定の行を削除してから新たにitemを追加すると新規で追加されてしまいます。

何か良い方法があればご教授くださいorz


引用返信 編集キー/
■52509 / inTopicNo.2)  Re[1]: Listviewの値取得、変更について
□投稿者/ すなふきぬ (27回)-(2010/08/12(Thu) 03:01:25)
No52508 (らーめんまん さん) に返信
> 初めまして。
> 少々質問させてください。
> 
> VB.NET2005です。
> 
> @Listviewで選択した値をTextboxで取得する。
> ATextbox内の値を変更する。
> B変更した値を再びListviewに表示する。
> 
> というのものを作成しているのですが、Bの変更した値がListviewに上手く反映されません。

ListViewの項目は、ListViewItemというクラスのインスタンスなので、選択されている先頭の項目を変更する場合は以下のようにすれば簡単です。

If ListView1.SelectedItems.Count > 0 Then
  Dim lvi As ListViewItem = Me.ListView1.SelectedItems(0)
  lvi.Text = TextBox1.Text
  lvi.SubItems(1).Text = TextBox2.Text
  lvi.SubItems(2).Text = TextBox3.Text
End If

引用返信 編集キー/
■52535 / inTopicNo.3)  Re[2]: Listviewの値取得、変更について
□投稿者/ らーめんまん (2回)-(2010/08/12(Thu) 23:28:27)
すなふきぬさん

無事解決しました!

ListViewItemについて調査しましたが、とても便利なものだと分かりました。
また、指定した行を選択できるSelectedItemsについてのご指摘もありがとうございました。


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



No52509 (すなふきぬ さん) に返信
> ■No52508 (らーめんまん さん) に返信
>>初めまして。
>>少々質問させてください。
>>
>>VB.NET2005です。
>>
>>@Listviewで選択した値をTextboxで取得する。
>>ATextbox内の値を変更する。
>>B変更した値を再びListviewに表示する。
>>
>>というのものを作成しているのですが、Bの変更した値がListviewに上手く反映されません。
>
> ListViewの項目は、ListViewItemというクラスのインスタンスなので、選択されている先頭の項目を変更する場合は以下のようにすれば簡単です。
>
> If ListView1.SelectedItems.Count > 0 Then
> Dim lvi As ListViewItem = Me.ListView1.SelectedItems(0)
> lvi.Text = TextBox1.Text
> lvi.SubItems(1).Text = TextBox2.Text
> lvi.SubItems(2).Text = TextBox3.Text
> End If
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -