1

やあ。Windowsフォームアプリケーションがあります。私が何かをした後、私が望むのは更新をListview. ログファイルのようなものです。これが私のコードです:

private void Form1_Load(object sender, EventArgs e)
{
    listView1.View = View.Details;
    listView1.GridLines = true;
    listView1.FullRowSelect = true;

    //Add column header
    listView1.Columns.Add("Import Status", 100);
    listView1.Columns.Add("Price", 70);
    listView1.Columns.Add("Date", 70);

    //Add items in the listview
    string[] arr = new string[4];
    ListViewItem itm;

    //Add first item
    arr[0] = "product_1";
    arr[1] = "100";
    arr[2] = "10";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);

    //Add second item
    arr[0] = "product_2";
    arr[1] = "200";
    arr[2] = "20";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);
}

ListView「ハードコーディング」せずに項目を追加するにはどうすればよいですか? 助言がありますか?Button.Clickデータを含む行を追加するにはどうすればよいですか?

4

3 に答える 3

2
   How can I Add items to the ListView without 'hardcoding' them? 

コード

    private void Form1_Load(object sender, EventArgs e)
    {
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;
        listView1.Columns.Add("Import Status");
        listView1.Columns.Add("Price");
        listView1.Columns.Add("Date");      
    }

    private void btnAdd_Click(object sender, EventArgs e)
    {
        ListViewItem LVI = new ListViewItem(txtstatus.Text);
        LVI.SubItems.Add(txtPrice.Text);
        LVI.SubItems.Add(txtDate.Text);
        listView1.Items.Add(LVI);
    }

UI

ここに画像の説明を入力

于 2013-03-07T07:17:40.423 に答える
1

こんにちは:)リストビューコントロールの代わりにデータグリッドビューを使用できます。

独自のデータセットを定義するか、プロジェクトにデータセット コントロールを追加するだけです。そこにある新しいデータテーブルに 3 つの列を追加するだけです。それから:

  • そのデータセットをフォームに追加すると、フォーム コードに表示されます
  • 追加されたデータセットに datagridview のデータソースを設定します

新しいデータ行をデータテーブルに追加すると、データグリッドビューに自動的に表示されます。良いことは、一度テーブル レイアウトを定義する必要があり、デザイナーが使用できるカスタム データ行タイプを生成することです。

私の経験では、この方法はリストビューを使用するよりも快適であることがわかりました。主なことは、他のコンテキストでそこからデータを処理したい場合は、データテーブルを介してLINQできることです。以前はリストビューを使用していましたが、データグリッドビューとデータセットを組み合わせたので、すべてが良くなりました;)

よろしくお願いします。

于 2013-03-07T07:01:32.690 に答える
1

これらの 2 行をグローバル化して、クラスのすべてのメソッドでアクセスできるようにします。

string[] arr = new string[4];
ListViewItem itm;

イベントを作成し、button clickコードを挿入します。

private void button1_Click(object sender, EventArgs e)
        {
            arr[0] = "product_2"; //you can get these values from textboxes if you are taking input from user
            arr[1] = "200";
            arr[2] = "20";
            itm = new ListViewItem(arr);
            listView1.Items.Add(itm);
        }
于 2013-03-07T06:56:04.660 に答える