我正在开发一个包含两种形式的 Windows 窗体类型的解决方案:
表格frm_open_window:
领域:
- (1) “打开”按钮:打开名为 frm_new_window的表单。
按下此按钮时,它应该锁定。例子:Abrir.Enabled = false;
表格frm_new_window:
领域:
- (1) RadioButton:判断 frm_open_window表单按钮 是否启用。
- (1) 完成按钮:关闭当前窗体 (frm_new_window) 并应启用窗体的按钮 frm_open_window。
我正在审查这个问题,但它不适用于我在问题中描述的情况。
程序流程如下:
- 按下
Abrir
窗体frm_open_window的按钮。 OnClick
按钮的事件Abrir
打开frm_new_window窗体的一个实例并阻止按钮Abrir
。- 在frm_new_window窗体中,您可以选择选择
RadioButton
. - 在当前表单frm_new_window中,按下按钮
Finalizar
,将checked
(布尔)del发送RadioButton
到第一个表单,即 frm_open_window。 - 将属性的值设置为表单的
Enabled
按钮frm_open_window。Abrir
长话短说,我现在遇到的问题是在这两种形式之间发送一个布尔值;当第二个表单完成其功能时,按钮必须关闭并再次启用Abrir
。
这是我当前的代码:
frm_open_window形式的代码:
/// Propiedad pública del formulario "para habilitar el botón (Abrir)".
public bool EstadoBoton { get; set; }
/// <summary>
/// Abrir segundo formulario (frm_nueva_ventana).
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnAbrir_Click(object sender, EventArgs e)
{
frm_nueva_ventana frmNewVnt = new frm_nueva_ventana();
frmNewVnt.Show();
btnAbrir.Enabled = false;
}
代码frm_new_window:
/// <summary>
/// Cerrar actual formulario (frm_nueva_ventana) y enviar
/// el checked del RadioButton al botón del primer formulario.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnFinalizar_Click(object sender, EventArgs e)
{
// frm_abrir_ventana aún está abierta y debe estarlo.
// por lo que no sé tampoco cómo detectar este proceso.
frm_abrir_ventana frmAbrVnt = new frm_abrir_ventana();
frmAbrVnt.Show();
frmAbrVtn.EstadoBoton = true;
}
如何正确设置此功能?
这可能是一个解决方案:
形式为 frm_open_window
形式为 frm_new_window
frm_abrir_ventana
当您想返回父窗口时,您不必创建新实例,您必须使用现有实例这里 沟通表格
我解释这个主题
但基本上,您必须
frm_abrir_ventana
从您打开的表单中获得父表单的实例(在这种情况下),frm_nueva_ventana
才能知道您必须将数据从一个窗口发送到另一个窗口的位置父窗口将其实例发送到另一个窗体
子窗口接收实例并使用它发送数据
观察实例是如何在表单的构造函数中传递的,这样就不必创建一个新的,从而能够将值从一侧传递到另一侧