我发现了这种变化,但没有解决问题的方法。所以这就是:
我正在使用Winforms。我有一个组合框和一个包含3列的列表视图。用户可以从组合框中选择现有值,也可以通过文本框和按钮添加自己的值。一切正常。
这是我遇到问题的地方: 我希望用户能够从组合框中选择一个值,在这种情况下是一个类别,并在“类别”列下的列表视图中显示。
我正在自学C#,这是第2天所以请耐心等待。
我的列表视图代码:
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);
}
以下是应该将所有用户输入添加到列表视图的按钮。唯一不起作用的是最后一行。
它给我以下错误:无法分配'添加',因为它是'方法组'。
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);
答案 0 :(得分:1)
.Add是一种方法,因此需要像方法一样调用它。
lstView.Items.Add("Adding this string to the list view");
但是我不知道cboCategory是什么,所以我不能告诉你想要添加什么。
答案 1 :(得分:0)
正如Sriram所述,这一行是完全错误的,实际上我们也不知道你的cboCategory是什么。
lstView.Items.Add = cboCategory.SelectedIndex;
当然你不应该这样做:
lstView.Items.Add(lvwItem);
和/或......
var selectedValue = lstView.Items.FirstOrDefault( c=>whateversearchparameters here);
if( selectedValue!=null )
SelectAndStuffHere();
在不知道更多的情况下很难分辨:)
但希望它有所帮助,
干杯
了Stian