如何通过单击ListView中的特定行来打开表单

时间:2018-07-27 09:58:35

标签: c# winforms

我试图通过单击ListView中的一行来打开新表单,并将特定行中列出的NoteId传递给新表单,有人可以帮忙吗?

对不起,如果这是一个愚蠢的问题,但是我从上个月才开始编程,而我的研究证明是徒劳的:(

        private void populatingMainList()
    {

        List<Note> getAllNotes = GetAllNotes();

        lstMain.Items.Clear();

        for (int i = 0; i < getAllNotes.Count; i++)
        {
            lstMain.FullRowSelect = true;
            string _note;
            ListViewItem lvi = new ListViewItem(_note = getAllNotes[i].NoteComplete.ToString());
            if (_note == "True")
            {
                lvi.Text = "";
                lvi.Checked = true;                    
            }
            else
            {
                lvi.Text = "";
                lvi.Checked = false;
            }
            lvi.SubItems.Add(getAllNotes[i].NoteTitle);
            lvi.SubItems.Add(getAllNotes[i].NoteDot.ToString("dd-MM-yyyy"));
            lvi.SubItems.Add(getAllNotes[i].NoteNote);
            lvi.SubItems.Add(getAllNotes[i].NoteId.ToString());

            lstMain.Items.Add(lvi);
        }
    }

    private void lstMain_SelectedIndexChanged_1(object sender, EventArgs e)
    {
        //I believe that some sort of code that retrieve NoteId from the specific Row must be added here.

        if (_list == true)
        {
            frmSticky StickyForm = new frmSticky(_currentUser, _noteid);

        }
    }

2 个答案:

答案 0 :(得分:1)

private void lstMain_SelectedIndexChanged_1(object sender, EventArgs e)
{
    var lst = sender as ListView;
    _noteid = lst.SelectedItems[0].SubItems[3];

    if (_list == true)
    {
        frmSticky StickyForm = new frmSticky(_currentUser, _noteid);

    }
}

答案 1 :(得分:0)

您可以在列表视图中使用contextmenustrip,然后在其上添加具有功能的按钮以打开您要尝试的表单。

1。找到ContextMenuStrip并将其从工具箱添加到您的应用程序中。

2。如下图所示,将其添加到列表视图中。

3。选择添加的上下文菜单,然后单击“在此处键入”创建一个新按钮。

enter image description here

4。双击上下文菜单上的该按钮,然后从列表视图中单击上下文菜单上的该按钮,编写要执行的代码。

enter image description here