hola a todos, estoy intentado activar un ítem del menú toolStrip desde un form hijo en el evento formClosed, este lo desactivo al abrir el form hijo, pero al cerrar el form hijo me da el error de 'System.NullReferenceException', o sea al abrir el form hijo se desactiva el menú y al cerrarlo debería de activarse, y solo lo primero he podido hacer
//aqui lo desactivo al abrir el form hijo
private void proveedorToolStripMenuItem_Click(object sender, EventArgs e)
{
Prueba f = new Prueba();
f.MdiParent = this;
f.Show();
this.toolStripDropDownButton1.Enabled = false;
}
//funciona bien
aquí les dejo la forma en que intento acceder al toolStrip del formulario principal
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SAF
{
public partial class Prueba : Form
{
Form1 f = new Form1(); // nombre de mi formulario principal
public Prueba()
{
InitializeComponent();
}
private void Prueba_Load(object sender, EventArgs e)
{
}
private void Prueba_FormClosed(object sender, FormClosedEventArgs e)
{
ToolStrip objMenu = (ToolStrip)this.f.Controls["toolStripDropDownButton1"];
objMenu.Items["toolStripDropDownButton1"].Enabled = true;
//aquí debería de activarse nuevamente el menu
}
}
}
En primera instancia lo estás haciendo bien, pero no necesitas acceder al StripDropDown de esa manera, puedes hacerlo de la manera tradicional con:
private void Prueba_FormClosed(object sender, FormClosedEventArgs e)
{
f.toolStripDropDownButton1.Enabled = true;
}
Ahora bien, la excepción System.NullReferenceException creo que te ocurre porque (según veo en tu código) escribiste mal el nombre de uno de los controles, lo que intentas hacer según tu código es algo así como:
toolStripDropDownButton1.toolStripDropDownButton1
Es decir que buscas un item dentro del control que tenga el mismo nombre del item en vez de acceder únicamente al control. Intenta lo mismo pero con:
private void Prueba_FormClosed(object sender, FormClosedEventArgs e)
{
ToolStrip objMenu = (ToolStrip)this.f.Controls["toolStripDropDownButton1"];
objMenu.Enabled = true;
}