I have a outlook like GUI.
On the left a treeview and on the right a datagrid.
Seperated by a splitterbar. I dont have such a behavior like you describe.
I did not used the designer, i used 3 panel Controls to do that.
I guess the dockstyle is the problem. I use dockstyle.fill
Regard
Michael
Code snipped:
public Form1()
{
#region Form1 einstellen
Icon = new Icon(GetType(), "Key.ico");
Text = "PLCSetup";
Size = new Size(640,480);
StartPosition = FormStartPosition.CenterScreen;
MinimumSize = new Size(400,150);
#endregion
#region Form1 zwei mal Splitten einstellen
Panel panel = new Panel();
panel.Parent = this;
panel.Dock = DockStyle.Fill;
Splitter split1 = new Splitter();
split1.Parent = this;
split1.Dock = DockStyle.Left;
Panel panel1 = new Panel();
panel1.Parent = this;
panel1.Dock = DockStyle.Left;
panel1.BackColor = Color.Lime;
Panel panel2 = new Panel();
panel2.Parent = panel;
panel2.Dock = DockStyle.Fill;
panel2.BackColor = Color.Blue;
Splitter split2 = new Splitter();
split2.Parent = panel;
split2.Dock = DockStyle.Top;
Panel panel3 = new Panel();
panel3.Parent = panel;
panel3.Dock = DockStyle.Top;
panel3.BackColor = Color.Tan;
panel1.Width = ClientSize.Width / 3;
panel3.Height = ClientSize.Height / 3;
#endregion
#region Statusleiste einstellen
sb = new ProgressStatusBar();
sb.Parent = this;
sb.ShowPanels = true;
sb.SizingGrip = true;
sb.Dock = DockStyle.Bottom;
// -Pannels erstellen
// -Hilfe Panel
sbpHelp = new StatusBarPanel();
sbpHelp.Text = "Bereit";
sbpHelp.AutoSize = StatusBarPanelAutoSize.Spring;
// -ProgressPanel
sbpProgress = new ProgressPanel();
sbpProgress.Width = 100;
sbpProgress.Maximum = 100;
sbpProgress.Minimum = 0;
sbpProgress.Value = 50;
sbpProgress.ToolTipText = "Fortschritt in Prozent";
// -GoStopPanel
sbpGoStop = new StatusBarPanel();
sbpGoStop.Icon = new Icon(GetType(), "Green.ico");
sbpGoStop.ToolTipText = "GO";
sbpGoStop.Width = 35;
sbpGoStop.BorderStyle = StatusBarPanelBorderStyle.None;
sb.Panels.AddRange(new StatusBarPanel[]{sbpHelp,sbpProgress,sbpGoStop});
#endregion
#region Menuleiste einstellen
Menu = new MainMenu();
EventHandler ehSelect = new EventHandler(OnMenuSelect);
EventHandler ehClick = new EventHandler(OnMenuClick);
MenuItem mi = new MenuItem("Datei");
mi.Select += ehSelect;
Menu.MenuItems.Add(mi);
mi = new MenuItem("Ende");
mi.Select += ehSelect;
mi.Click += ehClick;
Menu.MenuItems[0].MenuItems.Add(mi);
#endregion
#region Buttonleiste einstellen
bm = new Bitmap(GetType(), "ToolBar1.bmp");
ImageList imglist = new ImageList();
//Size size = new Size(32,32)
imglist.ImageSize = new Size(32,32);
imglist.Images.AddStrip(bm);
imglist.TransparentColor = Color.Magenta;
ToolBar tbar = new ToolBar();
tbar.Parent = this;
tbar.ImageList = imglist;
tbar.Appearance = ToolBarAppearance.Flat;
for(int i = 0; i < 8; i++)
{
ToolBarButton tbarbtn = new ToolBarButton();
tbarbtn.ImageIndex = i;
tbar.Buttons.Add(tbarbtn);
}
#endregion
treeView1 = new TreeView();
treeView1.Parent = panel1;
treeView1.Dock = DockStyle.Fill;
dataGrid1 = new DataGrid();
dataGrid1.Parent = panel3;
dataGrid1.Dock = DockStyle.Fill;
string connString = @"Provider=Microsoft.JET.OLEDB.4.0;data
source=C:\plcsetup.mdb";
string sqlString = "SELECT * FROM plc_parameter";
OleDbConnection connection = new OleDbConnection(connString);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlString, connection);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet, "plc_parameter");
dataGrid1.DataSource = dataSet.Tables["plc_parameter"].DefaultView;
//dataGrid1.Text
listBox1 = new ListBox();
listBox1.Parent = panel2;
listBox1.Dock = DockStyle.Fill;
listBox1.IntegralHeight = false;