在Winforms选项卡控件中,滚动条不会保留在客户区域内

时间:2012-07-03 16:51:26

标签: c# winforms gridview scrollbar tabcontrol

我有一个TabControl,我以编程方式将Form及其GridView控件添加到Tab Controls Controls集合中。结果如下:

enter image description here

插图中的GridView实际上有大约150列......当我使用水平滚动条滚动到右边时,我得到了这个:

enter image description here

请注意,滚动条不会停留在选项卡的可见客户区域中。相反,滚动条假定嵌入表单的宽度。

如何让滚动条显示选项卡中可见客户区的宽度?

这是我的代码。 PcmEditorForm只是一个空白表单,FormBorderStyle设置为none,并且有一些代码可以设置网格中未显示的行数和列数:

    private void LoadEditorTab()
    {
        var editor = new PcmEditorForm();
        var grid = new GridView();
        editor.Width = grid.Width;
        editor.Height = grid.Height;
        editor.Controls.Add(grid);
        editor.AutoScroll = true;
        editor.Anchor = AnchorStyles.Left | AnchorStyles.Top;
        tabEdit.Controls.Clear();
        editor.TopLevel = false;
        editor.Visible = true;
        tabEdit.Controls.Add(editor);
    }

1 个答案:

答案 0 :(得分:1)

为什么不将编辑器停靠在tabEdit中。

private void LoadEditorTab()
    {
        var editor = new PcmEditorForm();
        var grid = new GridView();
        grid.width=editor.width
        grid.Anchor= AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
        editor.Controls.Add(grid);
        tabEdit.Controls.Clear();
        editor.TopLevel = false;
        editor.Visible = true;
        editor.dock=DockStyle.Fill;  // Dock the editor
        tabEdit.Controls.Add(editor);
    }