سؤال

لدينا نموذج MDI الذي يحتوي على بعض عدد من الأشكال الطفل التي لديها تعليق متفاوتة يظهر اسم الوثيقة التي تم تحميلها حاليا في. عندما يتم تعظيم الأشكال طفل النص باللقب يحصل على وضعها في شريط العنوان الإطار الأصل والذي غالبا ما يؤدي في النص الحاضر طويل جدا لاحتوائه في شريط ويندوز هو لطيف بما فيه الكفاية لإضافة والحذف واقتطاع النص.

ولكن عندما كنت تحوم فوق شريط عنوان النافذة الرئيسية، فإنه يظهر تلميح مع ما ينبغي أن يكون السلسلة بأكملها، ولكن بدلا من ذلك تلميح الأدوات غالبا ما تحتوي على جزء صغير من السلسلة. على سبيل المثال، إذا كان النص النموذج الرئيسي ل:

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;
        };
    }
}

نصائح أخرى

واتمنى لو كان لدي شيء أكثر فائدة بالنسبة لك، ولكن للأسف، وأنا لا أعتقد أن هناك وسيلة للتغلب على هذه. تستطيع إما تقصير أسماء أو لديك للتعامل معها: (

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top