如何将组合框的选定索引添加到列表视图中的列

本文关键字:添加 列表 视图 索引 组合 | 更新日期: 2023-09-27 18:17:03

我发现了这种变化,但没有解决这个问题。它是这样的:

我正在使用Winforms。我有一个组合框和一个列表视图与3列。用户既可以从组合框中选择现有值,也可以通过文本框和按钮添加自己的值。这些都可以正常工作。

这就是我遇到问题的地方:我希望用户能够从组合框中选择一个值,在这种情况下是一个类别,并在"类别"列下的列表视图中显示该值。

我正在自学c#,这是第2天,所以请原谅我。

我的listview代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        //Calls the function that adds properties to the listview
        PopulateListView();
        btnEditDesiredEnd.BackColor = Color.LightGray;
        btnDeposit.BackColor = Color.LightGray;
    }
    public void PopulateListView()
    {
        //Listview Properties:
        //Listview Details 
        lstView.View = View.Details;
        //Allow user to edit labels
        lstView.LabelEdit = true;
        //Allow user to change column order
        lstView.AllowColumnReorder = true;
        //Display checkboxes
        //lstView.CheckBoxes = true;
        //Display gridlines
        lstView.GridLines = true;
        //Allows user to select entire row
        lstView.FullRowSelect = true;

        //Create columns, width of -2 indicates auto-size
        lstView.Columns.Add("Transaction", 70, HorizontalAlignment.Center);
        lstView.Columns.Add("Category", 130, HorizontalAlignment.Center);
        lstView.Columns.Add("Description", -2, HorizontalAlignment.Left);
        //Add listview as a control
        this.Controls.Add(lstView);
    }

这个按钮应该将所有用户输入添加到listview。唯一不能工作的行是最后一行。

不能分配'Add',因为它是一个'方法组'
private void btnDeposit_Click(object sender, EventArgs e)
    {
        lstView.View = View.Details;
        ListViewItem lvwItem = lstView.Items.Add(txtDeposit.Text);
        lvwItem.SubItems.Add(txtWithdraw.Text);
        lvwItem.SubItems.Add(txtDescription.Text);
        txtDeposit.Clear();
        txtWithdraw.Clear();
        txtDescription.Clear();
        btnDeposit.Enabled = false;
        btnDeposit.BackColor = Color.LightGray;
        lstView.Items.Add = cboCategory.SelectedIndex;
    }

编辑:这是工作代码。(cboCategory为组合框)

private void btnDeposit_Click(object sender, EventArgs e)
    {
        lstView.View = View.Details;
        ListViewItem lvwItem = lstView.Items.Add(txtDeposit.Text);
        if (cboCategory.SelectedItem != null)
        {
            lvwItem.SubItems.Add(cboCategory.SelectedItem.ToString());
        }
        lvwItem.SubItems.Add(txtDescription.Text);

如何将组合框的选定索引添加到列表视图中的列

. add是一个方法,所以它需要像方法一样被调用。

lstView.Items.Add("Adding this string to the list view");

但是我不知道什么是bocategory,所以我不能建议你想添加什么

正如Sriram在这一行上面所说的是完全错误的,实际上我们也不知道你的cboCategory包含什么

lstView.Items.Add = cboCategory.SelectedIndex;

当然你不应该这样做:

lstView.Items.Add(lvwItem);

和/或…

var selectedValue = lstView.Items.FirstOrDefault( c=>whateversearchparameters here);
if( selectedValue!=null )
      SelectAndStuffHere();

在不了解更多的情况下很难判断:)

但希望它有帮助,

欢呼

Stian