我有一个StatusStrip,它有一个ToolStripStatusLabel,Spring=true和一个通知的背景色。问题是状态栏的右侧有一个难看的灰色方块。摆弄了一会儿后,我意识到这是大小调整夹点(我设置为SizingGrip=false,GripStyle=Hidden)。然而,即使将其隐藏,它仍然占用空间。我无法让状态栏上的任何内容一直延伸到右侧。注意我不能只设置StatusStrip的背景色,因为状态标签会改变颜色并有一些褪色效果。
zour9fqk1#
StatusStrip.Padding属性被borked,如果大小调整夹点被禁用,它将返回错误的Padding.Right值。您可以在表单构造函数中修复它,如下所示:
public Form1() { InitializeComponent(); statusStrip1.Padding = new Padding(statusStrip1.Padding.Left, statusStrip1.Padding.Top, statusStrip1.Padding.Left, statusStrip1.Padding.Bottom); }
字符串使用Left属性指定Right是修复方法。不要麻烦提交这个bug给Connect,他们不会修复它。
evrscar22#
看一下this blog entry on MSDN,这个问题是关于手动改变大小调整夹点的大小,我认为使用ToolStrip渲染器也可以为你工作。到目前为止,我遇到的问题是,它删除了StatusStrip中状态标签的背景颜色,所以它还不是一个解决方案,但它是一个开始。
public MyForm() { InitializeComponent(); statusStrip1.Renderer = new MyRenderer(); } private class MyRenderer : ToolStripProfessionalRenderer { protected override void OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs e) { // don't draw at all } }
字符串
ohtdti5x3#
我有以下问题:当我设置tsslSeparator.Spring = true时,我的右标签在tsslSeparator失去焦点后立即消失。启用大小调整夹点时出现问题。禁用时,一切正常。解决方案是将右标签的右边距设置为不同于0的值。
tsslSeparator.Spring = true
tsslLogging.Margin = new Padding(0, 3, 2, 2); // this is necessary for right alignment of status bar label
字符串希望这对某人有帮助。
xkftehaa4#
如果微软对修复它不感兴趣,似乎一个合适的修复应该处理所有方向,理想情况下修复所有状态条(请参阅我对Get All Children的回答以了解GetAllChildren的定义)
public static StatusStrip FixPadding(this StatusStrip ss) { if (!ss.SizingGrip) { var fixpad = ss.Padding; if (ss.Orientation == Orientation.Horizontal) { if (ss.RightToLeft == RightToLeft.No) fixpad.Right = fixpad.Left; else fixpad.Left = fixpad.Right; } else fixpad.Bottom = fixpad.Top; ss.Padding = fixpad; } return ss; } public static void FixStatusStripPadding(this Form f) { foreach (var ss in f.GetAllChildren().OfType<StatusStrip>()) ss.FixPadding(); }
lb3vh1jj5#
我试过这个:
ssStatus.Padding = Padding.Empty
字符串对我很有效。
5条答案
按热度按时间zour9fqk1#
StatusStrip.Padding属性被borked,如果大小调整夹点被禁用,它将返回错误的Padding.Right值。您可以在表单构造函数中修复它,如下所示:
字符串
使用Left属性指定Right是修复方法。不要麻烦提交这个bug给Connect,他们不会修复它。
evrscar22#
看一下this blog entry on MSDN,这个问题是关于手动改变大小调整夹点的大小,我认为使用ToolStrip渲染器也可以为你工作。
到目前为止,我遇到的问题是,它删除了StatusStrip中状态标签的背景颜色,所以它还不是一个解决方案,但它是一个开始。
字符串
ohtdti5x3#
我有以下问题:当我设置
tsslSeparator.Spring = true
时,我的右标签在tsslSeparator失去焦点后立即消失。启用大小调整夹点时出现问题。禁用时,一切正常。解决方案是将右标签的右边距设置为不同于0的值。字符串
希望这对某人有帮助。
xkftehaa4#
如果微软对修复它不感兴趣,似乎一个合适的修复应该处理所有方向,理想情况下修复所有状态条(请参阅我对Get All Children的回答以了解GetAllChildren的定义)
字符串
lb3vh1jj5#
我试过这个:
字符串
对我很有效。