繁体   English   中英

从SpitContainer控件中的拆分器中删除Windows的丑陋选择标记物

[英]Removing Windows' ugly Selection marker thing from Splitter in SpitContainer Control

我有一个SplitContainer控件,中间的Splitter非常难看。 通过将SplitContainerBackColor设置为(在此处插入颜色),然后将Panel1Panel2BackColor设置为白色,我可以使分离器看起来不错。 但是默认情况下,Windows甚至在选择之前,都将选择标记放在拆分器上。

如何确保选择标记从不显示在Splitter

在此处输入图片说明

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

Textbox1.Selected = true;

如果这只是未选中的问题之一,则应该可以解决您的问题。 但是,如果您选择调整大小的项目,则会再次出现。 在这种情况下,您可以在mouse_up事件中添加一些内容以将选择移出控件。 这样,用户移动了分隔条,然后当他们放开时,选择将从分隔条上清除。

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

splitContainer1.BorderStyle = BorderStyle.FixedSingle;
splitContainer1.SplitterWidth = 1;

我遇到了同样的问题,并通过在SplitContainer1的“属性”窗口中将TabStop设置为False来解决此问题。

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

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

private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) {
  if(this.splitContainer1.CanFocus) {
     this.splitContainer1.ActiveControl = this.treeView1;
  }
}

您可以添加一个事件处理程序,以从MouseUp的容器上窃取焦点。 :)

我做了很多尝试以去除分离器,但没有任何效果。 我做了一些不同的事情,为什么我们需要使用分割器,因为我们可以使用图片框控件使它的宽度(或高度)取决于您的项目集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... 
}

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

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

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

Button DeSelectButton = new Button();
        this.Controls.Add(DeSelectButton);
        DeSelectButton.Select();
        DeSelectButton.Visible = false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM