| Autor |
Beitrag |
AlanWake
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Do 02.09.10 20:10
Hallo Leute,
ich habe bei meiner Windows Form einen bindingNavigator1 und in dem eine toolStripComboBox1 hinzugefügt.
Jetzt habe ich folgendes Problem, wenn ich die Form breiter machen will oder ganz in den Vollbildmodus gehe passt die toolStripComboBox1 sich leider nicht der breite der Form an
Ich hatte es schon versucht mit,:
C#-Quelltext 1:
| this.toolStripComboBox1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Left; |
aber leider kann ich bei dieser Methode nur Left und Right angeben kein Center
Bin dankbar für jede Hilfe
gruß Alan
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Do 02.09.10 20:17
Hi Alan,
um auf die Größenänderungen zu reagieren verwendest Du die Anchor Eigenschaft im Designer.
Grüße,
CSMN
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Do 02.09.10 21:00
Hi,
habe den Anchor Wert verändert, aber dann löst das Programm den bindingNavigator1 von Top zu none bei Dock
Der bindingNavigator1 muss bei mir aber Oben oder Unten angedockt sein
Gibt es da noch eine andere Möglichkeit
gruß Alan
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Do 02.09.10 21:16
AlanWake hat folgendes geschrieben : |
Gibt es da noch eine andere Möglichkeit
|
Du kannst über das Event ResizeEnd gehen und in dem Handler die
Size Eigenschaft der toolStripComboBox1 anpassen.
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Do 02.09.10 21:40
Ich habe es mit ResizeEnd und Resize versucht aber dann zieht das Programm die toolStripComboBox1 so breit das sie ausgeblendet wird
Code:
C#-Quelltext 1: 2: 3: 4:
| private void Form1_Resize(object sender, EventArgs e) { this.toolStripComboBox1.Size = this.Size; } |
Gibt es sonst noch eine Möglichkeit
gruß Alan
ps. Ich suche eigentlich etwas, wenn ich die Breite der Form verändere, das jedes mal wenn ich um +1 die Größe verändere, das +1 zur Breite der toolStripComboBox1 dazu gezählt wird 
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 01:22
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 04:50
Hi,
also die Differenz zwischen Form und combobox soll 50 sein aber wie ich jetzt programmieren muss das das Programm immer diese Differenz einhält, also newWidth, da brauch ich ein Beispiel, sorry bin Anfänger
gruß Alan
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 07:09
AlanWake hat folgendes geschrieben : | Hi,
also die Differenz zwischen Form und combobox soll 50 sein aber wie ich jetzt programmieren muss das das Programm immer diese Differenz einhält, also newWidth, da brauch ich ein Beispiel, sorry bin Anfänger
gruß Alan |
na wie ermittelst du denn die beiden width werte(den der form und den der combobox)?
gruß
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 07:43
Ich meinte den Abstand zwischen den beiden !
|
|
Th69
      

Beiträge: 4805
Erhaltene Danke: 1061
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Fr 03.09.10 10:25
Mit Anchor arbeiten (wie CSMN schon geschrieben hat) ist der richtige Weg:
C#-Quelltext 1:
| toolStripComboBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right; |
Dies bedeutet, der Abstand zum linken und rechten Rand des Parents bleibt immer gleich (und dadurch vergrößert oder verkleinert sich das Control entsprechend).
|
|
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Fr 03.09.10 13:45
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 18:51
Hi Leute,
mit diesem Code bleibt zwar der bindingNavigator1 angedockt, nur leider wenn ich die Form nach rechts vergrößere, passiert nichts bei der toolStripComboBox1
C#-Quelltext 1: 2: 3: 4:
| private void Form1_Resize(object sender, EventArgs e) { toolStripComboBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right; } |
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 19:34
AlanWake hat folgendes geschrieben : | Hi Leute,
mit diesem Code bleibt zwar der bindingNavigator1 angedockt, nur leider wenn ich die Form nach rechts vergrößere, passiert nichts bei der toolStripComboBox1
C#-Quelltext 1: 2: 3: 4:
| private void Form1_Resize(object sender, EventArgs e) { toolStripComboBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right; } | |
Hi Alan,
platziere diesen Code bitte nicht im Resize Event sondern im Form Loading Event.
Grüße
CSMN
Edit: Habe das gerade ausprobiert, das funktioniert bei mir nicht. Muss was mit dem bindingNavigator1 zu tun haben, da der ja toolStripComboBox1 hostet. Auf die manuelle Art kann man die Größe jedoch anpassen, das klappt. Vielleicht ist auch jemanden eine schon vorhandene Lösung dafür bekannt?
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 19:57
Habe es jetzt so gemacht:
C#-Quelltext 1: 2: 3: 4:
| private void Form1_Load(object sender, EventArgs e) { toolStripComboBox1.Anchor = AnchorStyles.Left | AnchorStyles.Right; } |
aber es tut sich wieder nichts
gruß Alan
ps. @ CSMN: Beim Firefox passt das Programm ja auch die URL Textbox an, wenn ich die Größe verändere, wie machen die das 
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 20:13
Ich habe die Lösung
C#-Quelltext 1: 2: 3: 4:
| private void Form1_Resize(object sender, EventArgs e) { toolStripComboBox1.Size = new Size(this.Width -70, toolStripComboBox1.Size.Height); } |
Mit diesem Code ist die Breiter der Form die selbe wie bei der ComboBox (also wird ComboBox ausgeblendet) und die - 70 ist immer der Abstand zwischen beiden
gruß Alan
|
|
CSMN
      
Beiträge: 43
Erhaltene Danke: 2
|
Verfasst: Fr 03.09.10 22:28
|
|
AlanWake 
      
Beiträge: 75
Erhaltene Danke: 2
|
Verfasst: Sa 04.09.10 01:18
|
|
Trashkid2000
      
Beiträge: 561
Erhaltene Danke: 137
|
Verfasst: Sa 04.09.10 09:29
Oder dynamischer, ohne hart einprogrammierten Wert:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| int defaultWidth = 0; public Form1() { InitializeComponent(); defaultWidth = this.Width - toolStripComboBox1.Width; this.toolStripComboBox1.Width = this.Width - defaultWidth; }
protected override void OnResize(EventArgs e) { if (defaultWidth > 0) this.toolStripComboBox1.Width = this.Width - defaultWidth; base.OnResize(e); } |
//edit: kleinen Fehler im Code verändert
Die Autosize-Eigenschaft der ComboBox muss natürlich bei Anwendung auf false stehen.
Gruss, Marko
|
|