gpt4 book ai didi

c# - 修改或隐藏表单的标题工具提示

转载 作者:可可西里 更新时间:2023-11-01 10:02:08 24 4
gpt4 key购买 nike

我们有一个 MDI 表单,其中包含一些子表单,这些子表单具有不同的标题,显示当前加载的文档的文件名。当子窗体最大化时,它们的标题文本被放置在父窗口的标题栏中,这通常会导致文本太长而无法放入栏中,而 Windows 足以添加省略号并截断文本。

但是,当您将鼠标悬停在主窗口的标题栏上时,它会显示一个工具提示,其中应该是整个字符串,但工具提示通常只包含字符串的一小部分。例如,如果主窗体的文本是:

Program1 - Filename:[Really_long_filename_that_doesnt_fit.file]

它会在工具提示中显示如下:

Program1 - Filename:[Really_long_filename_t

编辑:它总是将工具提示截断为恰好 100 个字符,这让我相信它是某处指定的某个上限。

有没有办法改变它以显示整个字符串,或者如果没有,则完全禁用工具提示?

任何语言都是可以接受的,尽管我们在 C# 中这样做。

最佳答案

这使用手动工具提示和计时器在鼠标移到标题栏上时显示/隐藏标题。

public partial class Form1 : Form
{
private ToolTip toolTip = new ToolTip();
private Timer toolTipTimer = new Timer();
private bool canShowToolTip = true;

protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x2A0: // WM_NCMOUSEHOVER
return;
case (int)0x00A0: // WM_NCMOUSEMOVE
if (m.WParam == new IntPtr(0x0002)) // HT_CAPTION
{
if (canShowToolTip)
{
canShowToolTip = false;
toolTip.Show(this.Text, this, this.PointToClient(Cursor.Position), toolTip.AutoPopDelay);
toolTipTimer.Start();
}
}
return;
}
base.WndProc(ref m);
}

public Form1()
{
InitializeComponent();
Form child = new Form();
child.Text = "Program1 - Filename:[Really_long_filename_that_doesnt_fit.file] AAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB";
child.MdiParent = this;
child.Show();
toolTip.AutoPopDelay = 5000;
toolTipTimer.Interval = toolTip.AutoPopDelay;
toolTipTimer.Tick += delegate(object sender, EventArgs e)
{
canShowToolTip = true;
};
}
}

关于c# - 修改或隐藏表单的标题工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019007/

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