如何在UserControl中找到toolstrip中的toolstripButton

时间:2012-03-14 02:21:11

标签: c# winforms user-controls

我使用下面的代码在我的表格上的usercontol中启用/禁用按钮控制,这非常有效。

var btnAdd = this.userControlCommonTask1.Controls.Find("btnAdd", true);
btnAdd[0].Enabled = true;

但是当我使用toostrip(toolstrip1)按钮(btnAdd,btnEdit,btndelete etch ..)并使用上面的代码时

enter image description here

我得到了:

Index was outside the bounds of the array.

我试过这个,但它只适用于工具栏。

       var btnAdd = this.userControlCommonTask1.Controls.Find("toolstrip1", true);
        btnAdd[0].Enabled = true;

表示感谢

3 个答案:

答案 0 :(得分:3)

我已经解决了我的问题:

        var toolstrip1 = this.userControlCommonTask1.Controls.Find("toolstrip1", true);
        var toolstrip1Items = toolstrip1[0] as ToolStrip; <-- set to toolstrip control

        var btnRead = toolstrip1Items.Items.Find("btnRead", true); <--get BtnRead on toolstrip Item.Find
        btnRead[0].Enabled = false; <--disable/Enable btn

这可以作为其他开发人员的参考。

干杯!

答案 1 :(得分:0)

尝试使用0而不是1,您的数组基于零

答案 2 :(得分:0)

Toolstrip是另一个用户控件。尝试引用它,然后找到它的子控件

即。 ctlTooolStrip.Controls.Find( “BtnAdd”,TRUE);

还可以尝试toolStrip.Items