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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.53858 の関連記事表示

<< 0 >>
■53858  リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/28(Tue) 15:06:11)

    分類:[C#] 

    VisualStudio2005
    C#で開発しています。

    リストビューの選択されている項目を
    別Formのテキストボックスに表示したいです。
    項目は、名前、種類、内容の3つです。
    今、いろいろ調べてみてこのようにコーディングしました。
    selectedItem1,selectedItem2,selectedItem3は
    引数として別Formのコンストラクタに渡したいと思っています。

    string selectedItem1 = "";
    string selectedItem2 = "";
    string selectedItem3 = "";
    private void ListView1_SelectedIndexChanged(object sender, EventArgs e)
    {
    IEnumerator myEnum = this.listView1.SelectedItems.GetEnumerator();
    myEnum.MoveNext();
    ListViewItem viewItem = (ListViewItem)myEnum.Current;
    selectedItem1 = viewItem.SubItems[0].Text;
    selectedItem2 = viewItem.SubItems[1].Text;
    selectedItem3 = viewItem.SubItems[2].Text;
    }

    このようにコーディングしたのですが、
    'System.Windows.Forms.ListView' に 'SelectedItems' の定義がありません。
    とエラーが出てしまいました。
    何が原因なのかわからず困っています・・・

    勉強不足で申し訳ありませんが
    教えていただけたら幸いです。
親記事 /過去ログ90より / 関連記事表示
削除チェック/

■53860  Re[1]: リストビューの項目を別Formに表示
□投稿者/ ごう -(2010/09/28(Tue) 15:26:46)
    No53858 (C# さん) に返信
    using System.Collections; の宣言はしてありますか?
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53862  Re[2]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/28(Tue) 15:31:10)
    No53860 (ごう さん) に返信
    ありがとうございます。
    > using System.Collections; の宣言はしてありますか?
    >
    してあります。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53866  Re[3]: リストビューの項目を別Formに表示
□投稿者/ ごう -(2010/09/28(Tue) 16:43:33)
    No53862 (C# さん) に返信
    > ■No53860 (ごう さん) に返信
    > ありがとうございます。
    >>using System.Collections; の宣言はしてありますか?
    > >
    > してあります。

    当方の環境では再現しませんでした。
    .NET Frameworkのバージョンは何で、どのようなプラットフォーム(端末)で動作させることを予定していますか?

    参考までに(VisualStudio2005とのことなので.NET Framework2.0と仮定して)
    http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.selecteditems(VS.80).aspx

    ※もし、.NET Compact Frameworkを使用の場合は、MSDNの「バージョン情報」を見る限りではサポートされてないと思います。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53871  Re[4]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/28(Tue) 17:43:34)
    No53866 (ごう さん) に返信
    ありがとうございます。

    > 当方の環境では再現しませんでした。
    > .NET Frameworkのバージョンは何で、どのようなプラットフォーム(端末)で動作させることを予定していますか?
    >
    > 参考までに(VisualStudio2005とのことなので.NET Framework2.0と仮定して)
    > http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.selecteditems(VS.80).aspx
    >
    > ※もし、.NET Compact Frameworkを使用の場合は、MSDNの「バージョン情報」を見る限りではサポートされてないと思います。
    .NET Compact Framework2.0を使用しています・・・
    サポートされていないとは・・・
    確認不足でした!ありがとうございました!


    > リストビューの選択されている項目を
    > 別Formのテキストボックスに表示したいです。
    これを解決する方法はあるのでしょうか?
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53873  Re[5]: リストビューの項目を別Formに表示
□投稿者/ shu -(2010/09/28(Tue) 17:59:46)
    No53871 (C# さん) に返信
    SelectedIndicesというのがあります。(選択Itemのインデックスリストが入っている)

    1.forループなどで idx にSelectedIndicesの要素を順次設定
    2.this.listView1.Items(idx)で選択Itemが取得できます
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53893  Re[6]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/29(Wed) 15:12:18)
    2010/09/29(Wed) 15:12:41 編集(投稿者)

    No53873 (shu さん) に返信
    ありがとうございます。
    遅くなり、申し訳ありません。
    > ■No53871 (C# さん) に返信
    > SelectedIndicesというのがあります。(選択Itemのインデックスリストが入っている)
    >
    > 1.forループなどで idx にSelectedIndicesの要素を順次設定
    > 2.this.listView1.Items(idx)で選択Itemが取得できます

    private void ListView1_SelectedIndexChanged_UsingIndices(object sender, System.EventArgs e)
    {
    ListView.SelectedIndexCollection indexes = this.listView1.SelectedIndices;

    int i = 0;
    foreach (int index in indexes)
    {
    selectedItem[i] = this.listView1.Items[index].SubItems[1].Text;
    i++;
    }
    }

    このようにやってみましたがリストビューのアイテムを
    もってこれてないようです・・・
    コーディングの仕方が間違っているのでしょうか?
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53896  Re[7]: リストビューの項目を別Formに表示
□投稿者/ shu -(2010/09/29(Wed) 15:43:47)
    No53893 (C# さん) に返信
    > selectedItem[i] = this.listView1.Items[index].SubItems[1].Text;
    ここまで実行はされていそうですか?
    this.listView1.Items[index]
    がListViewItemになっているか確認してみて下さい。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53897  Re[8]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/29(Wed) 16:07:17)
    No53896 (shu さん) に返信
    ありがとうございます。

    > ■No53893 (C# さん) に返信
    >>selectedItem[i] = this.listView1.Items[index].SubItems[1].Text;
    > ここまで実行はされていそうですか?
    > this.listView1.Items[index]
    > がListViewItemになっているか確認してみて下さい。

    ブレークポイントを置いてみるとどうやら
    private void ListView1_SelectedIndexChanged_UsingIndices(object sender, System.EventArgs e)
    {
    ここにすでに来ていないみたいです。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53900  Re[9]: リストビューの項目を別Formに表示
□投稿者/ shu -(2010/09/29(Wed) 16:39:45)
    No53897 (C# さん) に返信
    > private void ListView1_SelectedIndexChanged_UsingIndices(object sender, System.EventArgs e)
    > {
    > ここにすでに来ていないみたいです。
    ということはイベントを貼っていないかSelectedIndexが変わる操作をしていないかです。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53901  Re[10]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/29(Wed) 16:56:14)
    2010/09/29(Wed) 16:56:53 編集(投稿者)

    No53900 (shu さん) に返信
    ありがとうございます。
    > ■No53897 (C# さん) に返信
    >>private void ListView1_SelectedIndexChanged_UsingIndices(object sender, System.EventArgs e)
    >>{
    >>ここにすでに来ていないみたいです。
    > ということはイベントを貼っていないかSelectedIndexが変わる操作をしていないかです。
    イベントを貼るのを忘れていました・・・。
    イベントを貼ったところメソッド内には
    入ることが出来ました。

    foreach (int index in indexes)
    {
    selectedItem[i] = this.listView1.Items[index].SubItems[1].Text;
    i++;
    "ここ"
    }

    "ここ"でMessageBox.Show()をして
    selectedItem[i]に何が入ったか見たいのですが
    MessageBox.Show(selectedItem[i]);
    このように記述したら何も表示されませんでした。
    また、項目が3つあるので3回foreachを回るはずが
    1回で抜けてしまいました。
    選択してるということをわかっていないみたいです。

    ListView.SelectedIndexCollection indexes = this.listView1.SelectedIndices;
    ここで選択しているものを取得しているはずなんですが・・・
    なにが原因なのでしょうか・・・;
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53902  Re[11]: リストビューの項目を別Formに表示
□投稿者/ shu -(2010/09/29(Wed) 17:13:41)
    No53901 (C# さん) に返信
    > 2010/09/29(Wed) 16:56:53 編集(投稿者)
    >
    > ■No53900 (shu さん) に返信
    > ありがとうございます。
    >>■No53897 (C# さん) に返信
    > >>private void ListView1_SelectedIndexChanged_UsingIndices(object sender, System.EventArgs e)
    > >>{
    > >>ここにすでに来ていないみたいです。
    >>ということはイベントを貼っていないかSelectedIndexが変わる操作をしていないかです。
    > イベントを貼るのを忘れていました・・・。
    > イベントを貼ったところメソッド内には
    > 入ることが出来ました。
    >
    > foreach (int index in indexes)
    > {
    > selectedItem[i] = this.listView1.Items[index].SubItems[1].Text;
    > i++;
    > "ここ"
    > }
    >
    > "ここ"でMessageBox.Show()をして
    > selectedItem[i]に何が入ったか見たいのですが
    > MessageBox.Show(selectedItem[i]);
    > このように記述したら何も表示されませんでした。
    > また、項目が3つあるので3回foreachを回るはずが
    > 1回で抜けてしまいました。
    > 選択してるということをわかっていないみたいです。
    >
    > ListView.SelectedIndexCollection indexes = this.listView1.SelectedIndices;
    > ここで選択しているものを取得しているはずなんですが・・・
    > なにが原因なのでしょうか・・・;

    条件判定は省きます。
    int intdex = this.listView1.SelectedIndices[0];

    ListViewItem viewItem = this.listView1.Items[index];
    selectedItem1 = viewItem.SubItems[0].Text;
    selectedItem2 = viewItem.SubItems[1].Text;
    selectedItem3 = viewItem.SubItems[2].Text;

    こんな感じでしょうか。(最初の提示コード引用)
    SelectedIndicesは複数行選択に対応してコレクションになっています。
    1行選択の場合、1要素のみ入っています。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53903  Re[12]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/29(Wed) 17:40:09)
    No53902 (shu さん) に返信
    > 条件判定は省きます。
    > int intdex = this.listView1.SelectedIndices[0];
    >
    > ListViewItem viewItem = this.listView1.Items[index];
    > selectedItem1 = viewItem.SubItems[0].Text;
    > selectedItem2 = viewItem.SubItems[1].Text;
    > selectedItem3 = viewItem.SubItems[2].Text;
    >
    > こんな感じでしょうか。(最初の提示コード引用)
    > SelectedIndicesは複数行選択に対応してコレクションになっています。
    > 1行選択の場合、1要素のみ入っています。

    まさにこれでした!
    ありがとうございました!
記事No.53858 のレス / END /過去ログ90より / 関連記事表示
削除チェック/

■53914  Re[13]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/30(Thu) 09:57:51)
    すみません・・・一度は解決したのですが
    再度、質問させてください。

    リストビューに
    名前|データ
    a-1|a1
    a-2|a2
    a-3|a3
    このように表示されていたとして
    わかりにくくてすみません・・・
    そこで質問なのですが、
    リストビューのa-1を選択すると
    上のコーディングでa-1,a1を取得できました。
    その後a-2を選択すると

    int index = this.listView1.SelectedIndices[0];

    ここで実行エラーが出てしまいました。

    ArgumentOutOfRangeExceptionはハンドルされませんでした。
    指定された引数は、有効な値の範囲内にありません。
    パラメータ名: index

    というエラーです。
    何が原因でしょうか?
    いろいろ調べてみたのですがわからず困っています・・・
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53915  Re[14]: リストビューの項目を別Formに表示
□投稿者/ shu -(2010/09/30(Thu) 10:02:20)
    No53914 (C# さん) に返信
    > すみません・・・一度は解決したのですが
    > 再度、質問させてください。
    >
    > リストビューに
    > 名前|データ
    > a-1|a1
    > a-2|a2
    > a-3|a3
    > このように表示されていたとして
    > わかりにくくてすみません・・・
    > そこで質問なのですが、
    > リストビューのa-1を選択すると
    > 上のコーディングでa-1,a1を取得できました。
    > その後a-2を選択すると
    >
    > int index = this.listView1.SelectedIndices[0];
    >
    > ここで実行エラーが出てしまいました。
    >
    > ArgumentOutOfRangeExceptionはハンドルされませんでした。
    > 指定された引数は、有効な値の範囲内にありません。
    > パラメータ名: index
    >
    > というエラーです。
    > 何が原因でしょうか?
    > いろいろ調べてみたのですがわからず困っています・・・
    省略した判定処理にあります。
    一度未選択の状態でイベントが発生すると思われますので、if でSelectedIndicesが空のときの
    処理を追加してください。.count == 0 だと思います。
記事No.53858 のレス /過去ログ90より / 関連記事表示
削除チェック/

■53918  Re[15]: リストビューの項目を別Formに表示
□投稿者/ C# -(2010/09/30(Thu) 10:20:37)
    No53915 (shu さん) に返信
    > ■No53914 (C# さん) に返信
    >>すみません・・・一度は解決したのですが
    >>再度、質問させてください。
    >>
    >>リストビューに
    >>名前|データ
    >>a-1|a1
    >>a-2|a2
    >>a-3|a3
    >>このように表示されていたとして
    >>わかりにくくてすみません・・・
    >>そこで質問なのですが、
    >>リストビューのa-1を選択すると
    >>上のコーディングでa-1,a1を取得できました。
    >>その後a-2を選択すると
    >>
    >>int index = this.listView1.SelectedIndices[0];
    >>
    >>ここで実行エラーが出てしまいました。
    >>
    >>ArgumentOutOfRangeExceptionはハンドルされませんでした。
    >>指定された引数は、有効な値の範囲内にありません。
    >>パラメータ名: index
    >>
    >>というエラーです。
    >>何が原因でしょうか?
    >>いろいろ調べてみたのですがわからず困っています・・・
    > 省略した判定処理にあります。
    > 一度未選択の状態でイベントが発生すると思われますので、if でSelectedIndicesが空のときの
    > 処理を追加してください。.count == 0 だと思います。
    >

    if (listView1.SelectedIndices.Count == 0){
    return;
    }
    これで解決いたしました。
    ありがとうございました!
記事No.53858 のレス / END /過去ログ90より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -