문제

.NET Framework의 PropertyGrid에서 선택한 PropertyTab을 프로그래밍 방식으로 설정하는 방법을 아는 사람이 있습니까? selectedtab 속성은 정착 할 수 없으며, 문서는 속성의 인스턴스를 직접 만들어서는 안된다는 것을 나타내므로 이해할 수 있습니다. 그러나 Code에서 탭을 변경하기 위해 PropertyGrid 인스턴스를 설정하기 위해 호출하거나 속성을 호출 할 수있는 해당 방법을 찾을 수없는 것 같습니다 (예 : selectTab) / int selectedTabindex {set; }. 어떤 아이디어?

도움이 되었습니까?

해결책

포스터 다니엘은 거의 그것을 가지고 있었다. 당신이 이것을 자신의 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