割り当てられた役割に基づいてメニュー項目を表示/非表示にする必要があるアクセス制御リストに取り組んでいます。TAG経由ですべてのメニュー項目を参照しました。これで、すべての TAG 名を格納した配列ができました。
タグ名の配列をループして、すべての menuStrip 項目をループせずにタグまたは名前でメニュー項目コントロールを参照し、現在のコントロールを比較して表示することは可能ですか?
ありがとう
割り当てられた役割に基づいてメニュー項目を表示/非表示にする必要があるアクセス制御リストに取り組んでいます。TAG経由ですべてのメニュー項目を参照しました。これで、すべての TAG 名を格納した配列ができました。
タグ名の配列をループして、すべての menuStrip 項目をループせずにタグまたは名前でメニュー項目コントロールを参照し、現在のコントロールを比較して表示することは可能ですか?
ありがとう
今はよくわかったと思います。次のコードは、ToolStripMenuItem
可視にします (または、オブジェクトのタイプに変更します)。タグを使用するには、すべてのオブジェクトを列挙する必要があるため、名前を使用します。
private void ShowItem(string menuItemName) {
var field = this.GetType().GetField(
menuItemName,
BindingFlags.Instance |
BindingFlags.NonPublic |
BindingFlags.GetField);
var mnu = field.GetValue(this) as ToolStripMenuItem;
if (null != mnu) {
mnu.Visible = true;
}
}
this
メニューを含むフォームでなければならないことに注意してください。