我正在尝试像这样放置一个很酷的小图像

对于我的拆分容器拖动按钮。

我在OnPaint事件中执行以下操作

private void splitContainer1_Paint(object sender, PaintEventArgs e)
    {
        var control = sender as SplitContainer;

        e.Graphics.DrawImage("...".Properties.Resources.divider, control.SplitterRectangle, 0, 0, 1040, 50, GraphicsUnit.Pixel);

    }

它确实绘制了我想要的图像,问题是高度始终为4像素。
在设计器中,我将SplitterWidth设置为15,但是在运行时,它始终保持为4。因此,实际上仅显示4个像素。

最佳答案

是的,根据您的评论,在 SplitterPanel 中包含 TableLayoutPanel 确实会使运行时忘记 SplitterWidth 设置,所以我确实重复了这个问题。 TableLayoutPanels 是奇怪的生物。

不幸的是显而易见的解决方法:

public Form1() {
  InitializeComponent();
  splitContainer1.SplitterWidth = 15;
}

关于c# - Windows.Forms SplitContainer.SplitterWidth 不会在运行时保持设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8814412/

10-11 02:04