MyTetra Share
Делитесь знаниями!
TextBox Подсказка
Время создания: 04.10.2019 23:38
Текстовые метки: c#, winforms, textbox, TextBox подсказка
Раздел: Компьютер - C# - WinForms - TextBox
Запись: Kozlov-AE/Tetra/master/base/1570221515kssqse4slb/text.html на raw.githubusercontent.com

В WinForms это решается созданием класса-наследника от TextBox, отправлающего самому себе сообщение EM_SETCUEBANNER:

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;

class CueTextBox : TextBox
{
    [Localizable(true)]
    public string Cue
    {
        get { return mCue; }
        set { mCue = value; updateCue(); }
    }

    private void updateCue()
    {
        if (this.IsHandleCreated && mCue != null)
        {
            SendMessage(this.Handle, 0x1501, (IntPtr)1, mCue);
        }
    }
    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);
        updateCue();
    }
    private string mCue;

    // PInvoke
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, string lp);
}

Добавляете этот класс в проект, компилируете, потом бросаете CueTextBox из Toolbox на форму и задаете свойство Cue. В остальном он ведет себя так же, как стандартный TextBox.


 
MyTetra Share v.0.55
Яндекс индекс цитирования