C# 如何在c语言中显示listview的行信息?

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),

我在c上有一个列表视图,但我想要的是,当我选择一行时,它应该在消息框中显示该行的第1列值

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会在每次调用时停止线程,因此您会看到对事件的两次调用。