0

割り当てられた役割に基づいてメニュー項目を表示/非表示にする必要があるアクセス制御リストに取り組んでいます。TAG経由ですべてのメニュー項目を参照しました。これで、すべての TAG 名を格納した配列ができました。

タグ名の配列をループして、すべての menuStrip 項目をループせずにタグまたは名前でメニュー項目コントロールを参照し、現在のコントロールを比較して表示することは可能ですか?

ありがとう

4

2 に答える 2

0

今はよくわかったと思います。次のコードは、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メニューを含むフォームでなければならないことに注意してください。

于 2013-04-04T08:44:16.667 に答える