请教各位,如何能够得出鼠标双击listview某一行的行号呢?
fanxin1126»
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
int aa = e.ItemIndex;
}
}
Dobzhansky»
顶楼
lile_cq»
谢谢楼上大哥的,不过我需要的是鼠标双击事件private void listView1_MouseDoubleClick(object sender, MouseEventArgs e),我是这样做的:
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
foreach (ListViewItem lvi in listView1.Items)
{
if (lvi.Focused == true)
{
MessageBox.Show(listView1.Items.IndexOf(lvi).ToString(), "", MessageBoxButtons.OK
,MessageBoxIcon.Information);
}
}
}
这样试了可以出来,就是不知道会不会有其他问题。还有其他办法吗?我总感觉我这这个代码效率太低了
wysdong»
ListViewItem item = this.listView1.SelectedItems[0];
int iCol=this.listView1.Items.IndexOf(item);
先获取listview选中的行,再返回选中行在listview中所在的行号!
lile_cq»
你太帅了,多谢了,还有别的方法吗?
simonezhlx»
如果以表格的方式来应用listview的话,为什么不考虑datagrid呢?
zgke»
直接使用private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listView1.SelectedItems.Count == 0) return;
MessageBox.Show(listView1.SelectedItems[0].Text);}
lile_cq»
嘿嘿,“大师父”,是别人让必须用listview来实现的,我就用了。。。。。
lile_cq»
MessageBox.Show(listView1.SelectedItems[0].Text);返回的双击行的内容,不是行号的。
这个和“wysdong”发的类似,他的那个是行号的
ListViewItem item = this.listView1.SelectedItems[0];
int iCol=this.listView1.Items.IndexOf(item);
rl0516»
如果是鼠标事件,还有一个更好的方法:
ListViewItem item = this.listView1.GetItemAt(e.X,e.Y);
fanxin1126»
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
int aa = e.ItemIndex;
}
}
Dobzhansky»
顶楼
lile_cq»
谢谢楼上大哥的,不过我需要的是鼠标双击事件private void listView1_MouseDoubleClick(object sender, MouseEventArgs e),我是这样做的:
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
foreach (ListViewItem lvi in listView1.Items)
{
if (lvi.Focused == true)
{
MessageBox.Show(listView1.Items.IndexOf(lvi).ToString(), "", MessageBoxButtons.OK
,MessageBoxIcon.Information);
}
}
}
这样试了可以出来,就是不知道会不会有其他问题。还有其他办法吗?我总感觉我这这个代码效率太低了
wysdong»
ListViewItem item = this.listView1.SelectedItems[0];
int iCol=this.listView1.Items.IndexOf(item);
先获取listview选中的行,再返回选中行在listview中所在的行号!
lile_cq»
你太帅了,多谢了,还有别的方法吗?
simonezhlx»
如果以表格的方式来应用listview的话,为什么不考虑datagrid呢?
zgke»
直接使用private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listView1.SelectedItems.Count == 0) return;
MessageBox.Show(listView1.SelectedItems[0].Text);}
lile_cq»
嘿嘿,“大师父”,是别人让必须用listview来实现的,我就用了。。。。。
lile_cq»
MessageBox.Show(listView1.SelectedItems[0].Text);返回的双击行的内容,不是行号的。
这个和“wysdong”发的类似,他的那个是行号的
ListViewItem item = this.listView1.SelectedItems[0];
int iCol=this.listView1.Items.IndexOf(item);
rl0516»
如果是鼠标事件,还有一个更好的方法:
ListViewItem item = this.listView1.GetItemAt(e.X,e.Y);