更新其他表单中的列表框

Photo123

成员
加入
2月11日,2020年
消息
18
编程经验
Beginner
我有2个形式。 Form1包含一个列表框和表示更新的按钮。如果用户从列表框中选择一个数字,然后单击“更新”按钮,然后弹出Form2。然后用户可以在Form2中输入一个数字,然后单击“更新”按钮。我希望使用的数字进入列表框中更新。例如:Form1列表框包含1,2,3。如果用户决定要更改第2号码,则选择它并单击“更新”按钮。当Form2 POP的启动时,用户输入号码90而不是2.最后,当他们单击“更新时,我希望Form1中的ListBox更新为90(仍然保持其他数字)。

C#:
//FORM 1 CODE
private void btnUpdate_Click(object sender, EventArgs e)
        {
            Form UpdateScore = new UpdateScore();
            DialogResult update = UpdateScore.ShowDialog();

            if (update == DialogResult.OK)
            {
                for (listBox1.SelectedItem.Item)
                {
                    listbox1.Items.Add(txtScore.Tag);
                }
              
            }
              
        }

C#:
//FORM 2 CODE
private void btnUpdate_Click(object sender, EventArgs e)
        {
            this.Tag = txtScore.Text;
            this.DialogResult = DialogResult.OK;

        }

这是我到目前为止的目标,但我在我的循环中得到错误,我不确定如何修复。我不明白为什么我在我的循环中为我所选物品收到错误,因为当我查看它发现我找到的列表博中选择。有人可以帮帮我吗?谢谢。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,721
地点
悉尼,澳大利亚
编程经验
10+
您应该通过该表单中的属性公开用户在第二个表单中输入的数字。然后,第一个表单只是获取属性值并更新其自己的列表框。您如何总是将数据放入并脱离对象?您要么设置/设置一个属性或调用方法。为什么这应该是任何不同的?声明只读属性或返回用户输入的数据的方法,然后以与之前的百次相同的方式使用该属性或方法。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,893
地点
切萨皮克,va.
编程经验
10+
The OP is using the Win32 API / .NET Framework 1.1 approach of using the Tag property of Form2 to expose the value that the user entered. As @jmcilkinney. 建议,最好使用明确的名称属性来公开此操作。

至于将值替换为替换价值的机制,OP需要替换其当前代码,如下所示:
C#:
if (update == DialogResult.OK)
{
    for (listBox1.SelectedItem.Item)
    {
        listbox1.Items.Add(txtScore.Tag);
    }
}
使用代替的代码,不添加当前所选项目。
 
最佳 底部