在我的windows应用程序中,我在右边停靠了一个面板,其中有一个分组框和取消和打印按钮。我有另一个带有按钮和分组框的面板,单击按钮时,组框的位置被更改,使其成为一个自定义滑块,必须放置在此面板的上方。我不能将滑块面板放在这个右侧停靠的面板中,因为宽度不同。
我可以在不停靠的情况下将滑块面板放在这个右侧停靠的面板上。但当窗口调整大小时,所有停靠的面板都会相应地调整大小,但此滑块面板除外。
右侧停靠面板的设计器代码。
this._pnlBasicPanelRight.Controls.Add(this._pnlBottomButtons);
this._pnlBasicPanelRight.Controls.Add(this._tgbxLocation);
this._pnlBasicPanelRight.Dock = System.Windows.Forms.DockStyle.Right;
this._pnlBasicPanelRight.Location = new System.Drawing.Point(1105, 0);
this._pnlBasicPanelRight.Name = "_pnlBasicPanelRight";
this._pnlBasicPanelRight.Size = new System.Drawing.Size(167, 693);
this._pnlBasicPanelRight.TabIndex = 44;滑块面板的设计器代码
this._pnlDataGrid.Dock = System.Windows.Forms.DockStyle.Right;
this._pnlDataGrid.Controls.Add(this._tgrpLimitValues,1,0);
this._pnlDataGrid.Controls.Add(this._btnRightBottomPanelVisibility,0,0);
this._pnlDataGrid.Size = new System.Drawing.Size(483, 370);
this._pnlDataGrid.Location = new System.Drawing.Point(1310, 159);
this._pnlDataGrid.Name = "_pnlDataGrid";
this._pnlDataGrid.TabIndex = 44;发布于 2019-08-16 17:02:23
停靠某物会将其固定在其容器的右侧,并占据整个高度。你不能让两个面板竞争占据整个高度,他们不知道彼此,所以他们本质上不会很好地发挥和分配空间(没有分配空间的机制)
你需要使用一种知道如何让两个东西占据一个高度并能分配空间的设备,比如具有水平分割模式的SplitContainer。将拆分容器停靠在右侧,并将您的两个面板放在其中,一个在拆分器的两侧
发布于 2019-08-16 20:43:15
看着你发布的图片,我可能会忘记停靠(dock:none),而是像你在图片中所做的那样放置面板,然后设置锚属性:
锚点右上面板:
锚定的意思是“在选定的边缘与封闭容器的相同边缘之间保持相同的距离”。
这意味着当窗口变大时,右上角的面板将左右移动,但不会向下移动或变大。右下角的面板也会左右移动,不会上下移动,但会随着窗口的增长而垂直增长
相反,如果您希望右下角面板为固定大小,而顶部面板垂直增长:
锚点右上面板:
这将使右下角的面板具有固定的大小,并粘贴到窗口的右下角(向上、向下、向左、向右移动,不会增长),而右上角的面板将左右移动,不会水平增长,但会随着窗口高度的变化而垂直增长和收缩
https://stackoverflow.com/questions/57521633
复制相似问题