标签: splitcontainer

SplitContainer仅调整panel1的大小

有没有办法让SplitContainer只调整panel1的大小?我有一个Vertical SplitContainer,当我移动分割器时,我希望第一个面板的大小增加/减少,而不是改变第二个面板的大小,我希望表单增加和减小尺寸.

我创建了一些代码来增加/减少窗体的大小,但是Panel2也在改变大小,因此整个面板并不总是可见的.

我是否必须制作自己的容器,或者是否可以使用SplitContainer?

我有一个表单"MainWin",其中包含一个Panel"MainPanel"MainPanel包含SplitContainer"MainSplitContainer".Panel1包含TreeView,Panel2包含3个面板,这些面板根据TreeView中选择的项目可见.我希望这三个面板始终完全可见(我打算限制分割器的扩展,以便表单不能扩展到屏幕之外),这是可能的还是我应该创建自己的控件并调整使用的大小MouseDown,MouseUp和MouseMove事件?

c# custom-controls splitcontainer

2
推荐指数
1
解决办法
1万
查看次数

如何获取splitContainer.Panel2下的所有按钮和标签

我想获得splitContainer.Panel2下所有按钮和标签的背景颜色.当我尝试它时,我发现我没有成功运行任何控件(在Panel2下)我尝试这个代码:

foreach (Control c in ((Control)splitContainer.Panel2).Controls)
{
    if ((c is Button) || (c is Label))
        MessageBox.Show("Name: " + c.Name + "  Back Color: " + c.BackColor);
}
Run Code Online (Sandbox Code Playgroud)

如何在splitContainer.Panel2下获取所有标签和按钮的所有背景颜色?

编辑:

  1. 我在splitcontainer.Panel2中有一些面板,按钮和标签在面板中.
  2. 我只得到这个meesage:"名称:panel_Right返回颜色:颜色[透明]"

c# controls splitcontainer winforms

1
推荐指数
1
解决办法
2336
查看次数

覆盖winform窗口的调整大小行为

我有一个winform窗口.当我改变屏幕大小时,屏幕会立即增加或减少.

我更喜欢窗口的Resize行为就像Split Container一样,只要我拖动鼠标我只看到标记窗口大小的行,并且只有在离开Resize操作时才会进行.

我看到几个例子表明,通过隐藏窗口的框架,然后通过点击窗口本身画框.

我希望通过单击窗口的框架(我不想隐藏框架)而不是在窗口上.

有没有办法做到这一点?(可以以任何方式覆盖Resize的行为).

c# forms resize splitcontainer winforms

1
推荐指数
1
解决办法
1561
查看次数

分离器距离随着控件大小的变化而变化

我的表单上有一个SplitContainer控件。它停靠到窗体。SplitterDistance当表单加载时,我设置了from代码。

SplitterDistance我调整表单大小时所做的更改外,这工作正常。例如,当我使表格变宽时,SplitterDistances似乎变大了,因此它保留了与父级宽度相同的百分比。

我不要这个 我希望分隔条和控件左侧之间的距离与调整窗口大小相同。但是,我不想设置,IsSplitterFixed = true因为我仍然希望允许用户更改它。

.net c# splitcontainer winforms

1
推荐指数
1
解决办法
295
查看次数

SplitterDistance属性不会小于25像素

我在拆分容器中有一个拆分容器,当我将SplitterDistance设置为小于25像素的任何值时,SplitterDistance不会变小.我可以在运行期间使它小于25像素,没有问题.我可以通过代码或设计器使它更大,并在运行时没有问题.我想将其设置为大约20个像素,而无需用户重新调整大小.有没有人知道为什么它会一直恢复到25像素,如果还有什么可以让它少于那个?

我尝试过这个并不起作用:

        // 
        // splitContainer3
        // 
        this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill;
        this.splitContainer3.Location = new System.Drawing.Point(0, 0);
        this.splitContainer3.Name = "splitContainer3";
        this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal;
        // 
        // splitContainer3.Panel1
        // 
        this.splitContainer3.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
        this.splitContainer3.Panel1MinSize = 5;
        // 
        // splitContainer3.Panel2
        // 
        this.splitContainer3.Panel2.Controls.Add(this.txtLineNums);
        this.splitContainer3.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
        this.splitContainer3.Panel2MinSize = 5;
        this.splitContainer3.RightToLeft = System.Windows.Forms.RightToLeft.No;
        this.splitContainer3.Size = new System.Drawing.Size(47, 562);
        this.splitContainer3.SplitterDistance = 20;
        this.splitContainer3.SplitterWidth = 2;
        this.splitContainer3.TabIndex = 0;
        this.splitContainer3.TabStop = false;
Run Code Online (Sandbox Code Playgroud)

谢谢!

c# splitcontainer winforms

0
推荐指数
1
解决办法
636
查看次数

标签 统计

c# ×5

splitcontainer ×5

winforms ×4

.net ×1

controls ×1

custom-controls ×1

forms ×1

resize ×1