WinForms – Blog https://blog.christianabele.de Christian Abele Thu, 12 Jul 2018 04:47:52 +0000 de-DE hourly 1 https://wordpress.org/?v=5.6 https://blog.christianabele.de/wp-content/uploads/2017/06/cropped-Unbenannt-1-32x32.jpg WinForms – Blog https://blog.christianabele.de 32 32 WinForms Cue TextBox https://blog.christianabele.de/2018/07/10/winforms-cue-textbox/ https://blog.christianabele.de/2018/07/10/winforms-cue-textbox/#respond Tue, 10 Jul 2018 09:22:52 +0000 https://blog.christianabele.de/?p=373 „WinForms Cue TextBox“ weiterlesen]]> Eine Möglichkeit mit wenig Aufwand eine TextBox mit einem Platzhalter (Cue-Banner) zu erstellen. Erstelle hierfür eine neue Klasse in deinem Projekt und füge den unten gezeigten Code ein, dann kompilieren. Platziere nun das neue Steuerelement/Control in deiner Form und setze die Cue-Eigenschaft.

Du erhälst eine Live-Vorschau des Cue-Wertes im Designer, lokalisiert auf die Spracheigenschaft des Formulars.

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

 

]]>
https://blog.christianabele.de/2018/07/10/winforms-cue-textbox/feed/ 0