Hola buenas tardes.
Tratare de explicar mi problema para que me puedan ayudar,
de ante mano gracias.
Tengo un formulario en el cual tiene varios controles y entre ellos tien un MenuStrip, este MenuStrip tien ToolStripTextBox y ToolStripMenuItem, en detalle es que yo al cargar el formulario recorro los elementos del mismo. y cuando llego a un MenuStrip, llamo a una función para que recorra los controles que tiene ese MenuStrip. el problema es que si en los controles hay mas de uno o sea un (ToolStripTextBox y ToolStripMenuItem). se cuelga el programa. Quisiera que me ayuden como puedo preguntar que tipo de control es para asi hacerlo su respectivo foreach
------------------
public F_AdministraciondePermisos(Form f)
{
InitializeComponent();
//recibo los el formulario con sus controles
ShowControls(f.Controls);
// llamo a la función enviando los controles
}
private void ShowControls(Control.ControlCollection controlCollection)
{
foreach (Control c in controlCollection)
{
if (c.Controls.Count > 0)
{
ShowControls(c.Controls);
}
//aki pregunto si es MenuStrip
if (c is MenuStrip)
{
MenuStrip menuStrip = c as MenuStrip;
// y llamo a esta otra funcion para recorres los controles de este MenuStrip
ShowToolStipItems(menuStrip.Items);
}
if (c is Button || c is DataGridView)
{
FAP_LisControles.Items.Add(c.Name);
}
}
}
private void ShowToolStipItems(ToolStripItemCollection toolStripItems)
{
// mi problema esta aki “si ago priero esto choca con el otro lo ideal seria saber de k tipo es y asi hacerlo su for”
foreach (ToolStripTextBox mi in toolStripItems)
{
MessageBox.Show("x");
}
foreach (ToolStripMenuItem mi in toolStripItems)
{
oldMenuToolTips.Add(mi.Name, mi.ToolTipText);
mi.ToolTipText = mi.Name;
if (mi.DropDownItems.Count > 0)
{
ShowToolStipItems(mi.DropDownItems);
}
FAP_LisControles.Items.Add(mi.Name);
}
}