编辑ListBox中的项目

时间:2015-12-22 17:20:32

标签: c# winforms listbox

我正在使用WinForms创建一个程序,因此用户可以将信息输入到一个表单上的文本框中,然后将其保存到另一个表单上的列表框中。我希望能够通过单击按钮打开原始表单来编辑保存在列表框中的项目。真的很难与它挣扎,因为我无法想到代码,我似乎无法找到解决方案。 我的代码:

private void btnAdd_Click(object sender, EventArgs e)
    {
        RoomDisplayForm newRoomDisplayForm = new RoomDisplayForm();
        newRoomDisplayForm.ShowDialog();
        if(newRoomDisplayForm.DialogResult == DialogResult.OK)
        {
            listBoxRooms.Items.Add(newRoomDisplayForm.value);
        }
        newRoomDisplayForm.Close();
    }

    private void btnRemove_Click(object sender, EventArgs e)
    {
        this.listBoxRooms.Items.RemoveAt(this.listBoxRooms.SelectedIndex);
    }

    private void btnEdit_Click(object sender, EventArgs e)
    {

    }

所以我有一个“添加和删除”按钮,完全可以使用编辑按钮的解决方案。

提前致谢

2 个答案:

答案 0 :(得分:1)

我猜测newRoomDisplayForm.value是表单中的属性或公共成员。你只需要这样做:

private void btnEdit_Click(object sender, EventArgs e)
{
   if(listBoxRooms.SelectedIndex < 0) return;

   var tmpValue = listBoxRooms.Items[listBoxRooms.SelectedIndex].ToString();
   RoomDisplayForm newRoomDisplayForm = new RoomDisplayForm();
   newRoomDisplayForm.value = tmpValue;
   newRoomDisplayForm.ShowDialog();

   //TODO: inside "newRoomDisplayForm" set the value to the textbox
   // ie.: myValueTextBox.Text = this.value;

   if(newRoomDisplayForm.DialogResult == DialogResult.OK)
   {
      // replace the selected item with the new value
      listBoxRooms.Items[listBoxRooms.SelectedIndex] = newRoomDisplayForm.value;
   }
}

希望它有所帮助!

答案 1 :(得分:0)

您只需删除该特定位置的listitem,创建一个新项目并再次添加即可。它是一种替代品。