Autor Beitrag
Früchstückskaffee
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.09.16 22:33 
Hallo Community,
ich habe ein UserControl und eine WinForm. Erst inszanziiere ich das UC, dann die WinForm. Nun gebe ich der WinForm eine neue Size, nämlich die des UserControls. Anschließend adde ich das UC, aber es gibt Probleme mit der Größendarstellung. Anscheindend ist die Form zu klein.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
Link link = new Link();
LanguageControlViewer viewer = new LanguageControlViewer();
viewer.Controls.Add(link);
viewer.Size = new Size(link.Width, link.Height);
viewer.Show();
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Sa 03.09.16 22:37 
Zitat:
Anscheindend ist die Form zu klein.


Ändere das doch?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 03.09.16 22:53 
Die Form ist so groß wie du sie gesetzt hast. Aber eben halt mit Rahmen, Header, Statusbar u.s.w. was ein Form halt so hat. Wenn du eine bestimmte ClientSize brauchst solltest du auch die ClientSize setzen und nicht Size. Wenn du die Form richtig sizen möchtest wäre es auch üblicher AutoSize zu benutzen und den passenden AutoSizeMode zu setzen.

Das funktioniert aber nur richtig (und nicht nur zufällig richtig) wenn man das UserControl auch richtig positioniert, sized, docked und/oder anchored. Nichts davon sehe ich in deinem Code.
Früchstückskaffee
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 03.09.16 22:57 
Ah okay. Vielen Dank, nun funktioniert es :)

PS: Ich habe die UserControls in einer DLL. Ich möchte nun nur noch eine WinForm brauchen die dann alle UC's automatisch darstellt, also auf der WinForm sich keine weiteren Steuerelemente enthalten. Aber mit der ClientSize funktioniert es. Danke dafür!
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Sa 03.09.16 23:08 
Du solltest allgemein darauf achten, dass sowohl Controls als auch Forms responsive aufgebaut sind.
Dann musst Du eine feste Größe nur noch bei der Form setzen - oder wenn Du explizit eine feste Größe brauchst.

Mit den Eigenschaften Dock und Anchor sollte sich das gut machen lassen.
So kannst Du mit ein paar Panels und geschicktem Setzen der Dock-Eigenschaft hervorragend eine Oberfläche iin responsive Bereiche aufteilen.
Als Alternative gibt's aber auch Controls wie SplitContainer oder das TableLayoutPanel.