1

ファイルからテキストを読み取って、リストビューの列に入れたいと思っています。ファイル内のテキストは「/」で区切られ、各 / は、テキストが次の列に結合されるタイミングを表します。私が試したいくつかのことは、

ListViewItem lv = new ListViewItem();
                lv.Text = fileContent[0].ToString();
                lv.SubItems.Add(fileContent[1].ToString());
                lv.SubItems.Add(fileContent[2].ToString());
                lv.SubItems.Add(fileContent[3].ToString());

リストビューに入れなかったため、機能しませんでした。他のアイデアを探してみましたが、何も機能しませんでした。

完全なコードは次のとおりです。

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                string fileToOpen = ofd.FileName;

                System.IO.StreamReader sr = new System.IO.StreamReader(fileToOpen);
                string fileContent = sr.ReadToEnd();
                string[] fileItems = fileContent.Split('/');
                sr.Dispose();

                ListViewItem lv = new ListViewItem();
                lv.Text = fileContent[0].ToString();
                lv.SubItems.Add(fileContent[1].ToString());
                lv.SubItems.Add(fileContent[2].ToString());
                lv.SubItems.Add(fileContent[3].ToString());



            }
        }

どうもありがとう!

4

1 に答える 1

1

ListViewItemnewを..に追加するだけListViewです。現時点ではそれを行っていません。あなたがやっていることは、スタンドアロンを作成することListViewItemです..そして、それはただそこに座っているだけです。

したがって、これらの行の後:

ListViewItem lv = new ListViewItem();
lv.Text = fileContent[0].ToString();
lv.SubItems.Add(fileContent[1].ToString());
lv.SubItems.Add(fileContent[2].ToString());
lv.SubItems.Add(fileContent[3].ToString());

これを行う:

yourListView.Items.Add(lv); // add the listviewitem to the listview

編集

fileContentアイテムを追加するために使用しているため、正しく分割されていません。fileContentファイルの内容全体です..それはあなたが望むものではありません。文字列に対して indexer メソッドを使用すると、[]個々の文字にアクセスします。

コードを次のように変更します。

ListViewItem lv = new ListViewItem();
lv.Text = fileItems[0].ToString(); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[1].ToString()); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[2].ToString()); // Use fileItems.. its the result of the split.
lv.SubItems.Add(fileItems[3].ToString()); // Use fileItems.. its the result of the split.
于 2013-10-24T21:33:22.910 に答える