gpt4 book ai didi

c# - 自动指示 ToolTipStatusLabel 中的截断

转载 作者:太空狗 更新时间:2023-10-29 18:19:25 31 4
gpt4 key购买 nike

我有一个 .NET 应用程序,其 StatusStrip 包含三个 ToolTipStatusLabel。标签的文本在显示状态时从应用程序中填充。在某些情况下,它们可以包含一个空文本。

当我调整窗口大小时,当 ToolTipStatusLabel 无法放入 StatusStrip 时,它们会被隐藏。当标签不适合 StatusStrip 时,我想截断文本。隐藏标签的默认行为使得难以区分空文本或隐藏标签。

要指示文本被自动截断,应使用省略号 (...) 表示。如何做到这一点?

最佳答案

将label的Spring属性设置为True,就是自动调整它的大小。要获得省略号,您需要覆盖绘画。向您的项目添加一个新类并粘贴如下所示的代码。编译。您将在状态条设计器下拉列表中获得新的 SpringLabel 控件。

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class SpringLabel : ToolStripStatusLabel {
public SpringLabel() {
this.Spring = true;
}
protected override void OnPaint(PaintEventArgs e) {
var flags = TextFormatFlags.Left | TextFormatFlags.EndEllipsis;
var bounds = new Rectangle(0, 0, this.Bounds.Width, this.Bounds.Height);
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, bounds, this.ForeColor, flags);
}
}

如果您使用 Image 或 TextAlign 属性,您将需要做更多的工作。

关于c# - 自动指示 ToolTipStatusLabel 中的截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903172/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com