سؤال

لا أحد يعرف كيفية تعيين برمجيا PropertyTab مختارة على PropertyGrid في .NET Framework؟ الخاصية SelectedTab ليست القابل للتعيين، وهذا أمر مفهوم، لأن الوثائق تشير يجب أن لا يكون خلق حالات PropertyTabs نفسك. ومع ذلك، وأنا لا يمكن أن يبدو للعثور على أسلوب المقابلة للاتصال ولا الخاصية لتعيين على سبيل المثال PropertyGrid لتغيير علامة التبويب من التعليمات البرمجية، مثل SelectTab (نوع tabType) / الباحث SelectedTabIndex {مجموعة؛ }. أي أفكار؟

هل كانت مفيدة؟

المحلول

وكان المشارك دانيال تقريبا ذلك. هنا هو ما يعمل فعلا، لو كنت لتطبيق هذا إلى فئة فرعية الخاصة بك من PropertyGrid:

    public int SelectedTabIndex 
    {
        set
        {
            Type pgType = typeof(PropertyGrid);
            BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;

            ToolStripButton[] buttons = (ToolStripButton[]) pgType.GetField("viewTabButtons", flags).GetValue(this);
            pgType.GetMethod("SelectViewTabButton", flags).Invoke(this, new object[] { buttons[value], true });
        }
    }

ومثل دانيال يقول، وهذا هو شكل سيء وغير معتمد تماما، ولكنه يعمل طالما لم يكن لديك ما يدعو للقلق أذونات الوصول عبر المجال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top