2012-03-14 9 views
1

私は完璧に動作する私のフォーム上で自分のusercontol内のボタンコントロールを有効/無効にするためにこのコードを使用しました。UserControlのtoolstrip内でtoolstripButtonを見つける方法

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

しかし、私はボタンでtoostrip(toolstrip1)を使用する(btnAdd、btnEdit、btndeleteエッチ...)と

enter image description here

の上に自分のコードを使用して私が得た:

Index was outside the bounds of the array. 

私はこれを試しましたが、ツールストリップでのみ動作します。

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

よろしく

+0

私のコメントはトラックから少し離れていますが、ユーザーコントロール全体をコピーして別の場所に貼り付けると、ツールストリップにアイテムを追加した後、ユーザーコントロール内にツールストリップを使用していると仮定していました。それはツールストリップのアイテムを保存していますか?はいの場合はどのように達成しますか?よろしく! – priyamtheone

答えて

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 

これは、他の開発者のための参照することができます。

乾杯!

0

のおかげでは、0の代わりに1つのあなたの配列はゼロベース

+0

私はすでにそれを変更しても動作しません。 – BizApps

+0

はbtnAdd.Count == 0ですか? –

+0

えええええええええええええええええええええええええええーーー0 0 ... btnAddはツールストリップのToostripボタンアイテムです.. – BizApps

0

のToolStripが別のユーザーコントロールです試してみてください。それを参照して、子コントロールを見つけてください。

ie。 ctlTooolStrip.Controls.Find( "BtnAdd"、true);

また、私はすでに私の問題を解決toolStrip.Items

+0

toolstrip.itemsの問題を解決したことがわかりました。私はこれを投稿してからずっと前です。 !!! –

関連する問題