17

我有一个SplitContainer控件,Splitter中间很丑。通过将BackColorof设置SplitContainer为(在此处插入颜色),然后将BackColorofPanel1和设置Panel2为白色,我可以让我的分离器看起来不错。但默认情况下,Windows 将选择标记放在拆分器上,甚至在它被选中之前。

如何确保选择标记永远不会显示在Splitter?

在此处输入图像描述

4

7 回答 7

10

我认为“选择标记废话”是指指示控件已选中的模糊线。如果您不希望显示此内容,请设置一些其他控件以在启动时选择。就像是:

Textbox1.Selected = true;

如果它只是未选择其中之一,这应该可以解决您的问题。但是,如果您选择要调整大小的项目,这会回来。在这种情况下,您可以在 mouse_up 事件中放置一些东西以将选择移出控件。这样,用户移动分隔条,然后当他们松开时,选择会从分隔条中清除。

另一种方法是使分隔条足够窄,以使灰色模糊线不会出现。为此,您可以执行以下操作(经过测试):

splitContainer1.BorderStyle = BorderStyle.FixedSingle;
splitContainer1.SplitterWidth = 1;
于 2011-05-14T21:57:11.880 回答
7

我遇到了同样的问题,并通过在“属性”窗口中设置TabStop为.FalseSplitContainer1

这可能会惹恼那些依赖或坚持使用键盘来操作表单的各个方面的人,但除此之外它会起作用。SplitContainer 内的控件将保持可选项卡,而不是 SplitContainer 本身。

于 2014-05-22T15:51:29.673 回答
3

此代码将在移动后不久将焦点从 splitContainer 移动到 TreeView。

private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) {
  if(this.splitContainer1.CanFocus) {
     this.splitContainer1.ActiveControl = this.treeView1;
  }
}
于 2011-06-28T19:34:05.037 回答
2

您可以添加一个事件处理程序来从 MouseUp 的容器中窃取焦点……这有点乱,但它可以工作。:)

于 2011-06-06T05:58:25.587 回答
1

我尝试了很多来删除分离器,但没有任何效果。我做了一些不同的为什么我们需要使用拆分器,因为我们可以使用图片框控件使其宽度(或)高度取决于您的项目设置 5 或 3 .... 在图片框鼠标移动事件之后编写代码如...图片框property-cursor 更改游标类型 Hsplit 它看起来像拆分器

private void picturebox1_MouseMove(object sender, MouseEventArgs e)
        {

 if (e.Button == MouseButtons.Left)//this for mouse left click its work
            {
//write you code here if you use panel set panel height or width it reaches...

Cursor.Position = new Point(e.X, e.Y); // this for mouse cursor position according your //project  do some fine tune you will get its work... 
}

它的工作,因为我为此尝试了很多,我自己发现了这种方法......

于 2012-06-29T12:12:01.160 回答
0

我将 TabStop 设置为 false 并且它消失了。

于 2013-06-16T19:25:09.607 回答
0

我找到/制作的最简单的解决方案 - 创建一个按钮,选择它,然后隐藏它。全部通过代码。没有副作用或问题,将其放在表单加载事件中。

Button DeSelectButton = new Button();
        this.Controls.Add(DeSelectButton);
        DeSelectButton.Select();
        DeSelectButton.Visible = false;
于 2017-03-07T06:53:29.610 回答