【发布时间】:2023-03-23 03:48:01
【问题描述】:
对不起,我知道这个问题,或者类似的问题经常被问到,但是由于我经历了不同的线程,我只是不知道如何将它应用到我的程序中。
这是我的情况: 在表格 1 中,我有一个标签。有一个按钮可以打开 Form 2,它有单选按钮和一个按钮。表单 2 中的按钮应该从单选按钮发送一个字符串值到表单 1 中的 label.Text。我该怎么做呢?
所以,下面是打开表格 2 的内容。
private void selectkeyButton_Click(object sender, EventArgs e)
{
selectKeyboard sk = new selectKeyboard();
sk.ShowDialog();
}
在表格 2 中,这是我目前所拥有的:
public Form1 otherForm = new Form1();
string hotkey = "";
public void hotkeyChanged(object sender, EventArgs e)
{
RadioButton rr = (RadioButton)sender;
switch (rr.Name)
{
case ("buttonF1"):
hotkey = "F1 ";
break;
}
}
public void buttonConfirmKey_Click(object sender, EventArgs e)
{
hotkey = otherForm.keyLabel.Text;
this.Close();
}
我有public Form1 otherForm = new Form1();
还有hotkey = otherForm.keyLabel.Text;我找到了here.
它似乎不起作用,因为当我按下 form2 上的按钮时,表单关闭但 form1 中的标签没有改变......
有什么想法吗? 谢谢
【问题讨论】:
-
其他问题怎么没有给你你需要的?实例化新表单而不是引用原始表单是一个常见的错误。您正在代码
public Form1 otherForm = new Form1();中创建一个新表单。您需要将原始Form1的引用传递给新的Form2。 -
与其直接从form2设置标签,不如使用form2的结果。所以你可以
ShowDialog你的form2,如果结果是DialogResult.OK,使用选择值(你应该将它存储在form2的属性中)在form1中设置标签文本。