Objectlistview doubleclick解释

时间:2015-08-02 10:19:10

标签: c# objectlistview

我试图在doubleclick对象中实现objectlistview功能。

根据开发人员的说法,应该使用ItemActivate代替MouseDoubleClick

所以我想出了这个:

    private void treeListView_ItemActivate(object sender, EventArgs e)
    {
        try
        {
            ListView.SelectedIndexCollection col = treeListView.SelectedIndices;

            MessageBox.Show(col[0].ToString());
        }
        catch (Exception e3)
        {
            globals.logfile.error(e3.ToString());
            globals.logfile.flush();
        }
        finally
        {
        }
    }

为每个双击行提供一个值。 但是如何从该行获取详细信息?

以下是我现在使用的整个解决方案:

    private void treeListView_ItemActivate(object sender, EventArgs e)
    {
        try
        {
            var se = (StructureElement)treeListView.GetItem(treeListView.SelectedIndex).RowObject;
            MessageBox.Show(se.id.ToString());
        }
        catch (Exception e3)
        {
            globals.logfile.error(e3.ToString());
            globals.logfile.flush();
        }
        finally
        {
        }
    }

2 个答案:

答案 0 :(得分:3)

  

为每个双击行提供一个值。但是如何从该行获取详细信息?

我认为您必须使用基础RowObject访问OLVListItem,如下所示:

private void treeListView_ItemActivate(object sender, EventArgs e) {
    var item = treeListView.GetItem(treeListView.SelectedIndex).RowObject;     
}

答案 1 :(得分:0)

这就是我现在从treelistview中获取数据的方式:

private void treeListView_ItemActivate(object sender, EventArgs e)
{
    try
    {
        var se = (StructureElement)treeListView.GetItem(treeListView.SelectedIndex).RowObject;
        MessageBox.Show(se.id.ToString());
    }
    catch (Exception e3)
    {
        globals.logfile.error(e3.ToString());
        globals.logfile.flush();
    }
    finally
    {
    }
}