当前位置: 首页 > 编程语言 > C#

ListView中连续双击分享

时间:2023-04-10 11:00:50 C#

ListView中连续双击ListView中是否可以获取双击行的值?我注册了一个事件:privatevoidlvLista_DoubleClick(objectsender,EventArgse){MessageBox.Show(lvLista.SelectedItems.ToString());但是在消息上,当我双击列表视图中的一行时,我得到:System.Windows.Forms.ListView+SelectedListViewItemCollection更重要的是,我在列表视图中有两列:lvLista.Columns.Add("ID");lvLista.Columns.Add("倾斜");我想在消息框中显示双击行的“ID”。怎么做?如何从这个活动中获得价值?试试这个:privatevoidlvLista_DoubleClick(objectsender,EventArgse){MessageBox.Show(lvLista.SelectedItems[0].SubItems[0].Text);如果您处理ListView控件的MouseDown和/或MouseDoubleClick事件,并使用HitTest方法确定鼠标动作的目标,您就会知道哪个项目被双击了。这也是确定是否单击了任何项目的好方法(例如,部分填充列表中空白区域的单击)。如果发生单击,下面的代码将在文本框中显示单击的项目,如果发生双击,将弹出一个消息框,其中包含双击的项目的名称。如果单击或双击列表视图中未被项目填充的区域,文本框或消息框会通知yopu这一事实。这是一个微不足道的例子,根据您的需要,您将不得不处理它。更新:我添加了一些代码,用于在单击或双击列表的空白区域时清除Listview控件的SelectedItems属性。publicpartialclassForm1:Form{publicForm1(){InitializeComponent();listView1.MouseDown+=newMouseEventHandler(listView1_MouseDown);listView1.MouseDoubleClick+=newMouseEventHandler(listView1_MouseDoubleClick);this.Load+=newEventHandler(Form1_Load);}voidForm1_Load(objectsender,EventArgse){this.SetupListview();}privatevoidSetupListview(){ListViewlv=this.listView1;lv.View=View.List;lv.Items.Add("约翰列侬");lv.Items.Add("保罗·麦卡特尼");lv.Items.Add("乔治·哈里森");lv.Items.Add("理查德·斯塔基");}voidlistView1_MouseDoubleClick(objectsender,MouseEventArgse){ListViewHitTestInfoinfo=listView1.HitTest(eX,eY);ListViewItemitem=info.Item;if(item!=null){MessageBox.Show("所选项目名称为:"+item.Text);}else{this.listView1.SelectedItems.Clear();MessageBox.Show("没有选择项目");}}voidlistView1_MouseDown(objectsender,MouseEventArgse){ListViewHitTestInfo信息=listView1.HitTest(eX,eY);ListViewItemitem=info.Item;if(item!=null){this.textBox1.Text=item.Text;}else{this.listView1.SelectedItems.Clear();这。textBox1.Text="没有选择项目";我知道这篇文章很旧,但我认为这里没有人正确回答这个问题对于未来的用户,请尝试MSDN:this.myListView.Activation=System.Windows.Forms.ItemActivation.TwoClick;this.myListView.ItemActivate+=newSystem.EventHandler(this.myListView_ItemClick);谢谢;这就是我所需要的。我想我还要提到可以更普遍地设置局部信息变量:ListViewHitTestInfoinfo=((ListView)sender).HitTest(eX,eY);试试这个privatevoidlistView1_MouseClick(objectsender,MouseEventArgse){ListViewHitTestInfohit=listView1.HitTest(e.Location);矩形rowBounds=hit.SubItem.Bounds;矩形labelBounds=hit.Item.GetBounds(ItemBoundsPortion.Label);intleftMargin=labelBounds.Left-1;字符串x=hit.Item.Text;由于接受的答案对我没有帮助,我想我会分享我对同一问题的解决方案:在双击事件中从列表视图中的特定列获取数据。下面这行以字符串的形式返回我双击的那一行第二列的数据:以上就是C#学习教程的全部内容:ListView分享中双击某行,如果对大家有用需要想了解更多C#学习教程,希望大家多多关注——privatevoidlistViewOutput_DoubleClick(objectsender,EventArgse){stringcontent=listViewOutput.Items[listViewOutput.SelectedIndices[0]].SubItems[1]。文}本文收集自网络,不代表立场。侵权请点击右侧联系管理员删除。如需转载请注明出处: