我想从中打开一个,然后在循环中从另一个窗体点击该窗体上的按钮.我试过下面的代码
本文关键字:窗体 代码 按钮 循环 然后 一个 另一个 | 更新日期: 2023-09-27 17:59:28
第一种形式的代码:
int i=0;
while(i < 5)
{
this.hide();
form2 obj_form2 = new form2();
obj_form2.show();
i++;
}
我必须在表格2中的文本框中输入一些值,点击按钮,我想将该文本框的值从表格2传递到表格1五次。尽管上面的代码我一次得到了所有五个窗口,但我希望它们在点击form2 按钮时逐一显示
是的,您可以删除while循环并保留一个类变量来检测按下按钮的次数:
private pressimes = 0;
private void btnOpenForm_Click(object sender, EventArgs e)
{
this.hide();
form2 obj_form2=new form2();
obj_form2.PassedValue = pressTimes;
obj_form2.show();
pressTimes++;
}
在表格2中,添加:
public int PassedValue { set; get; }
并在表单中使用它作为传递的值。或者,您可以更改表单2构造函数,并使用以下命令传递值:form2 obj_form2=new form2(pressTimes)
这是要放入Form1
:中的代码
this.hide();
List<string> results = new List<string>(); // List of all the returned results
for (int i = 0; i < 5; i++)
{
form2 obj_form2 = new form2();
obj_form2.ShowDialog();
results.Add(obj_form2.textBox.Text);
}
this.Show();
MessageBox.Show(string.Join("'n", results)); // Show all the results
现在,在Form2
中,找到用于写入返回值的textBox。选择它并查看它的属性。查找属性Modifiers
并将其设置为public
。
现在这个代码应该可以工作了。我希望这能有所帮助。
编辑
您也可以将此功能添加到Form2
:
public static string GetInput()
{
form2 obj_form2 = new form2();
obj_form2.ShowDialog();
return obj_form2.textBox.Text;
}
并将前面提到的代码更改为此
this.hide();
List<string> results = new List<string>(); // List of all the returned results
for (int i = 0; i < 5; i++)
results.Add(form2.GetInput());
this.Show();
MessageBox.Show(string.Join("'n", results)); // Show all the results
仍然要更改之前提到的Modifiers
属性