[英]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.