繁体   English   中英

在列表框之间以两种单独的形式传递整数

[英]Passing integers between listboxes in two separate forms

所以这就是我想要的。 我希望在编译程序时同时加载两个WinForms。 它们都包含两个列表框,即Form1中的listBoxBid和listBoxAsk以及Form2中的listBoxBid2和listBoxAsk2。 在Form1中,您可以通过在文本框中输入值并单击“提交”按钮来提交出价。 提交投标时,它应同时显示在Form 1的listBoxBid和Form2的listBoxBid2中。 我已经成功完成了...

public partial class Form2 : Form
{
  public int getBid(myBid)
    {
      return listBoxBid2.Items.Add(myBid);
    {
{

...接着...

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        form2.Show();
    }

    Form2 form2 = new Form2();
    List<int> bids = new List<int>();

private void buttonBid_Click(object sender, System.EventArgs e)
{
   \\some code to convert text to output

    form2.getBid(output);
{

所以这可行。 但是,在Form2中,所有Ask值均已制成,我希望它们在listBoxAsk和listBoxAsk2中都显示。 但是,当我使用与出价相同的方法时,会收到StackOverflow异常(这很有意义,因为激活form1会激活form2,然后再激活另一个form1 ...等)。

所以我的问题是,如何从表格2到表格1的listBoxAsk获取Ask值。 我已经尝试使用Google搜索,但是还没有找到一种可行的方法:/

实例化Form2时,传递对Form1的引用:

public partial class Form2 : Form
{
  private readonly Form1 _form1;

  public Form2(Form1 frm) {
      _form1 = frm;
  }

  public int getBid(myBid)
  {
      return listBoxBid2.Items.Add(myBid);
  }
}

这样,您可以在创建Form1的实例时将其传递给Form2

form2 = new Form2(this);

然后,您可以在Form2中编写一个将项添加到Form1

void AddItemsToMainForm(object[] items) {
    _form1.listBox.Items.AddRange(items);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM