プロパティまたはインデクサー
’System.Windows.Forms.ListViewItem.Index’
は読み取り専用なので、割り当てることはできません。

プログラミング

C#のListViewで選択を制御していますが、以下のように読み取り専用とのエラーが出て困りました。

プロパティまたはインデクサー ’System.Windows.Forms.ListViewItem.Index’ は読み取り専用なので、割り当てることはできません。

スポンサーリンク
スポンサーリンク

C#のListViewでエラー

ListViewの選択をプログラムで制御しようとしているのですが、うまくいきません。

Form.listView1.SelectedItems[0].Index = 1;

と代入すると、以下のエラーが表示されました。

ListView.SelectedListViewItemCollection ListView.SelectedItems

コントロール内の選択された項目を取得します。

エラー:

プロパティまたはインデクサー’System.Windows.Forms.ListViewItem.Index’は読み取り専用なので、割り当てることはできません。

image

英語版なら以下のエラーです。

Property or indexer 'System.Windows.Forms.ListViewItem.Index' cannot be assigned to -- it is read only

ListViewItem.Index 読み取り専用の解決策

以下のようにしてみたら解決しました。

Form.listview1.Items[0].Selected = true;
Form.listview1.Select();

まぁ、なんとなく理解できる仕様です。

親である、Form.listView1.Select() を忘れないで設定することも必要でした。

プログラミングの無料レッスン体験

約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp

<Codecampの特徴>

1 現役エンジニアによる指導

2オンラインでのマンツーマン形式の講義

3大手企業にも導入されている実践的なカリキュラム

↓無料体験レッスン実施中です。

プログラミングのオンラインスクールCodeCamp