System::Drawing::Size als Property im PropertyGrid



  • Hallo,
    ich habe folgendes Problem:
    Ich möchte eine Size im PropertyGrid verfügbar machen. Diese soll nun verändert werden können. Allerdings will es nicht so richtig klappen, wenn ich mein Control(welches die Size enthält) kompiliere, geht das wunderbar, allerdings ist die Size nicht editierbar, sondern wird im PropertyGrid des Visual Studio ausgegraut dargestellt, was für mich bedeutet, dass diese scheinbar nicht veränderbar ist.
    Ich habe das ganze wie folgt herausgegeben:

    [Browsable(true),
    DesignerSerializationVisibility(DesignerSerializationVisibility::Visible),
    ReadOnlyAttribute(false)]
    
    property System::Drawing::Size ^ ExportSize
    {
        System::Drawing::Size ^ get () { return m_Size; }
        void set (System::Drawing::Size ^ value) { m_Size = value; }
    }
    

    Die Variable m_Size wird im Konstruktor instanziiert und enthält beim Ansehen im Designer auch die entsprechend vergebenen Werte, allerdings kann ich weder (wie ich es erwartet hätte) die Größen direkt verändern, noch die ExportSize in dieser Ansicht aufklappen, um auf die einzelnen Properties, in diesem Fall Width und Height, zuzugreifen.
    Ich hoffe, dass mir jemand helfen kann.

    Thx so far



  • Jo, nur zur Info:
    Ich habs inzwischen hingebracht und herausgefunden, dass System::Drawing::Size scheinbar eine value class / struct is und von daher der ^ -Operator wohl nicht benutzt werden kann/darf um das ganze zu ermöglichen und die Definition so aussehen muss:

    property System::Drawing::Size ExportSize
    {
        System::Drawing::Size get ()
        {
             return m_Size;
        }
        void set (System::Drawing::Size value) { m_Size = value; }
    }
    

Anmelden zum Antworten