簡體   English   中英

從另一個列表框更新一個列表框

[英]Update a listbox from another listbox

我有兩個Winforms(admForm和projForm),每個都有一個列表框。 在admForm內,您可以在屬於此表單的列表框中添加一個用戶。

到目前為止,一切工作正常,但是我想使用“ admForm”列表框中的對象更新“ projForm”中的列表框。

任何想法?

在admForm中:

public string ListBox
{
    get { return lstUserOrProject.Items.ToString(); }
}

在projForm中:

private void UpdateList()
{
    AdminForm admForm = new AdminForm();
    lstAvailableUser.Items.Add(admForm.ListBox.ToString());
}

打開projForm的代碼:

    private void btnAdd_Click(object sender, EventArgs e)
    {
        int index = lstUserOrProject.SelectedIndex;

        switch (cmbUserOrProject.SelectedIndex)
        {
            case (int)UserOrProject.Projects:
                ProjectForm proj = new ProjectForm("Add Project");

                if (proj.ShowDialog() == DialogResult.OK)
                {
                    projMngr.AddProject(proj.ProjectData);
                    UpdateProject();
                }
                break;

            case (int)UserOrProject.Users:
                UserForm user = new UserForm("Add User");


                if (user.ShowDialog() == DialogResult.OK)
                {
                    userMngr.AddUser(user.UserData);
                    UpdateUser();
                }
                break;
        }
    }

這里:

AdminForm admForm = new AdminForm();

您正在創建全新的實例。

如果在AdminForm之后打開projForm,則在顯示表單時使用以下代碼:

ProjForm projForm = new ProjForm();  // change ProjForm if your form class name is different
projForm.Show(this);

然后在projForm中,您可以像這樣訪問listBox:

private void UpdateList()
{
  var items = Owner.lstUserOrProject.Items; // Owner represents your admin form
  lstAvailableUser.Items.Clear();

   foreach(var item in items)
   {
      lstAvailableUser.Items.Add(item);
   }
 }

更新:

將此定義移到AdminForm中頁面的頂部,我的意思是:

class AdminForm : Form
{
   // move your definition here
   ProjForm projForm = new ProjForm();  // change ProjForm if your form class name is different
}

然后,當您想顯示表單調用時:

projForm.Show(this);

當您想在項目表中更新列表時,請調用更新方法:

projForm.UpdateList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM