Dynamische Headerformatformatierung

scripting

#1

Im folgenden Beispiel werden im Ereignis “OnHostDataChange” bestimmte Controls der ersten Zeile in ein dynamisches erzeugtes Header-Panel verschoben.

var xpos = new List<int>() { 1, 25, 64 };      // list with search positions
var headerControls = new List<Control>();      // list of found controls

foreach (var control in ControlList) 
  if (control is IGuiControl)
    {
        var p = (control as IGuiControl).StartPos;
        if (p.Y == 0 && xpos.Contains(p.X))
        {
             headerControls.Add(control);
        }
    }

if (headerControls.Count  == xpos.Count)  // all controls need to be found
{
   var panel = new Panel();
   panel.Dock = DockStyle.Top;
   panel.Height = 30;
   panel.BackColor = Color.Aquamarine;
   panel.Parent = this;
   foreach (var control in headerControls)
   { 
     control.Parent = panel;
     control.Top = 5;    // adjust top position on new panel
   }
}


unlisted #2

listed #3

#5

Hallo zusammen,

hört sich erstmal sehr interessant an, da wir gerade unsere Header vom Aufbau her identisch designen! :slight_smile:

Hab das gerade mal mit meinem gefährlichen Halbwissen versucht und den Code im UserControl_HostDataChanged eingefügt.
Leider hat sich nichts getan.
Welche Parameter muss ich auf meinen Screen abändern?

Danke und Gruß


#6

Wenn nichts passiert, dann schlug die Erkennung wohl fehl. Bitte überprüfen Sie doch die Parameter ganz oben in dem Code. Diese müssen ganz genau passen. Dann sollte es funktionieren.