我有一个StatusStrip停靠在一个c表单的底部,它包含一个标签,其中的文本显示良好,除非有较长的文本长度,然后它根本不显示,我必须加宽表单,然后突然出现。是否可以用以下表格显示:

    This is a very long tex...

这样用户就知道应用程序正在显示某些内容,然后他可以自己扩展它,因为当它根本不可见时,它不会向用户指示任何内容。

最佳答案

您可以基于ToolStripProfessionalRenderer和overrideOnRenderItemText方法创建自定义渲染器,并使用省略号绘制文本:

public class CustomRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
    {
        if (e.Item is ToolStripStatusLabel)
            TextRenderer.DrawText(e.Graphics, e.Text, e.TextFont,
                e.TextRectangle, e.TextColor, Color.Transparent,
                e.TextFormat | TextFormatFlags.EndEllipsis);
        else
            base.OnRenderItemText(e);
    }
}

然后将RendererStatusStrip设置为自定义渲染器就足够了:
this.statusStrip1.Renderer = new CustomRenderer();

在下面的示例中,您可以看到ToolStripStatusLabel的行为,它的Spring属性设置为true,它的StatusStrip使用CustomRenderer
c# - 文字过长时,StatusStrip标签不可见-LMLPHP

关于c# - 文字过长时,StatusStrip标签不可见,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38155313/

10-10 04:05