我仍然无法理解如何使listview中的项目可点击并显示消息框。
这是我的代码。
private void button6_Click(object sender, EventArgs e)
{
ListViewItem listviewitem;
listviewitem = new ListViewItem("John");
listviewitem.SubItems.Add("Smith");
listviewitem.SubItems.Add("kaya");
listviewitem.SubItems.Add("bun");
this.listView1.Items.Add(listviewitem);
listView1.FullRowSelect = true;
//显示标题 listView1.View = View.Details;
// Loop through and size each column header to fit the column header text.
foreach (ColumnHeader ch in this.listView1.Columns)
{
ch.Width = -2;
}
}
我已阅读itemActive,我试过这个。我正在添加listView1.SelectedItems[0].Text
private void button6_Click(object sender, EventArgs e)
{
ListViewItem listviewitem;
listviewitem = new ListViewItem("John");
listviewitem.SubItems.Add("Smith");
listviewitem.SubItems.Add("kaya");
listviewitem.SubItems.Add("bun");
this.listView1.Items.Add(listviewitem);
listView1.FullRowSelect = true;
MessageBox.Show("You clicked " + listView1.SelectedItems[0].Text);
}
此打印输出错误
参数超出范围。 '0'不是索引的有效数。
请帮助我。
答案 0 :(得分:6)
在button6_Click()
上只在listviewitem
listView1
private void button6_Click(object sender, EventArgs e)
{
ListViewItem listviewitem;
listviewitem = new ListViewItem("John");
listviewitem.SubItems.Add("Smith");
listviewitem.SubItems.Add("kaya");
listviewitem.SubItems.Add("bun");
this.listView1.Items.Add(listviewitem);
listView1.FullRowSelect = true;
//MessageBox.Show("You clicked " + listView1.SelectedItems[0].Text);
}
针对Click
listView1
个活动
this.listView1.Click += new System.EventHandler(this.listView1_Click);
在它的事件处理程序中检查listView1.SelectedItems[0]
private void listView1_Click(object sender, EventArgs e)
{
if(listView1.SelectedItems.Count > 0)
MessageBox.Show("You clicked " + listView1.SelectedItems[0].Text);
}
有关文档,请please check MSDN
答案 1 :(得分:1)
当您收到错误时,您实际上没有选择项目,那就是:
InvalidArgument ='0'的值对'index'无效。
提供一些保护以检查项目是否已被选中:
if (listView1.SelectedItems.Count > 0)
{
MessageBox.Show("You clicked " + listView1.SelectedItems[0].Text);
}
else
{
MessageBox.Show("Please select an item");
}
或者在代码中选择项目:
private void button6_Click(object sender, EventArgs e)
{
ListViewItem listviewitem;
listviewitem = new ListViewItem("John");
listviewitem.SubItems.Add("Smith");
listviewitem.SubItems.Add("kaya");
listviewitem.SubItems.Add("bun");
this.listView1.Items.Add(listviewitem);
//listView1.FullRowSelect = true;
listView1.Items[0].Selected = true;
MessageBox.Show("You clicked " + listView1.SelectedItems[0].Text);
}
答案 2 :(得分:0)
您确定有活动项目吗? 可能是因为您没有在列表中选择任何项目。检查所选项目,
string msg = (listView1.SelectedItems.Count >0) ? "You Clicked " +
listView1.SelectedItems[0].Text : "Please select an item.";
MessageBox.Show(msg);