C# 如何在c语言中显示listview的行信息?
我在c上有一个列表视图,但我想要的是,当我选择一行时,它应该在消息框中显示该行的第1列值C# 如何在c语言中显示listview的行信息?,c#,winforms,C#,Winforms,我在c上有一个列表视图,但我想要的是,当我选择一行时,它应该在消息框中显示该行的第1列值 private void CreateMyListView() { // Create a new ListView control. //ListView listView1 = new ListView(); //listView1.Bounds = new Rectangle(new Point(10, 10),
private void CreateMyListView()
{
// Create a new ListView control.
//ListView listView1 = new ListView();
//listView1.Bounds = new Rectangle(new Point(10, 10), new Size(300, 200));
// Set the view to show details.
listView1.View = View.Details;
// Allow the user to edit item text.
listView1.LabelEdit = true;
// Allow the user to rearrange columns.
listView1.AllowColumnReorder = true;
// Display check boxes.
listView1.CheckBoxes = true;
// Select the item and subitems when selection is made.
listView1.FullRowSelect = true;
// Display grid lines.
listView1.GridLines = true;
// Sort the items in the list in ascending order.
listView1.Sorting = SortOrder.Ascending;
// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("item1", 0);
// Place a check mark next to the item.
item1.Checked = true;
item1.SubItems.Add("1");
item1.SubItems.Add("2");
item1.SubItems.Add("3");
ListViewItem item2 = new ListViewItem("item2", 1);
item2.SubItems.Add("4");
item2.SubItems.Add("5");
item2.SubItems.Add("6");
ListViewItem item3 = new ListViewItem("item3", 0);
// Place a check mark next to the item.
item3.Checked = true;
item3.SubItems.Add("7");
item3.SubItems.Add("8");
item3.SubItems.Add("9");
// Create columns for the items and subitems.
// Width of -2 indicates auto-size.
listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);
//Add the items to the ListView.
listView1.Items.AddRange(new ListViewItem[] { item1, item2, item3 });
// Create two ImageList objects.
ImageList imageListSmall = new ImageList();
ImageList imageListLarge = new ImageList();
// Initialize the ImageList objects with bitmaps.
//imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
//imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
//imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
//imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));
//Assign the ImageList objects to the ListView.
listView1.LargeImageList = imageListLarge;
listView1.SmallImageList = imageListSmall;
// Add the ListView to the control collection.
this.Controls.Add(listView1);
}
那么,有什么东西可以帮助我从列表视图中显示该行的第1列值吗?当您单击列表视图中的某个项目时,会触发selectedindexchanged事件。在此事件中,您可以获得focuseditem的.Text属性。MessageBox.ShowlistView1.FocusedItem.Text这也可以通过使用FocusedItem.Subitemindex.Text用于任何其他列。它工作正常,但存在一个问题,它会先显示上一列,然后再显示下一列更新您的帖子,以显示您使用的代码和事件。根据我的指示,我无法复制。编辑:事实上,我可以用复选框重现这一点,我错过了您启用它们的位置。好的,谢谢。因此,它似乎与设置和设计无关。事件在selectionchange开始时和结束时被调用。这就是为什么在第二次单击listview时会看到上一个选择和当前选择。如果要将标签的文本设置为focuseditem.text,那么它的速度会非常快,以至于看起来只显示当前项。messagebox会在每次调用时停止线程,因此您会看到对事件的两次调用。