// ----------------------------------------------------------------------------- // File name: STextBox.cs // Author: Smart Goat // Email: dmtmd2010@yahoo.com.vn // Blog: knowledgesharez.net // Date: 2013-12-09 // Description: a text box with placeholder, similar the web input control. // - Properties: // + Placeholder: string - The content of the placeholder // - Methods: // + IsEmpty(): bool - Check if the text box is empty (recommended) // ----------------------------------------------------------------------------- using System; using System.Drawing; using System.Windows.Forms; namespace FooBar { class STextBox : TextBox { private bool textInputted; private Color backupForeColor = Color.Empty; private string placeholder = string.Empty; public string Placeholder { get { return placeholder; } set { placeholder = value; SetPlaceHolder(); } } public bool IsEmpty() { return string.IsNullOrEmpty(Text) || !textInputted; } private void SetPlaceHolder() { if (string.IsNullOrEmpty(Text)) { Text = placeholder; ForeColor = Color.Gray; textInputted = false; } } protected override void OnTextChanged(EventArgs e) { base.OnTextChanged(e); textInputted = !string.IsNullOrEmpty(Text); } protected override void OnEnter(EventArgs e) { base.OnEnter(e); if (!textInputted) { Text = string.Empty; ForeColor = backupForeColor; } } protected override void OnLeave(EventArgs e) { base.OnLeave(e); SetPlaceHolder(); } protected override void OnForeColorChanged(EventArgs e) { base.OnForeColorChanged(e); if (backupForeColor == Color.Empty) { backupForeColor = ForeColor; } } protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.Control && e.KeyCode == Keys.A) { SelectAll(); } } } }
Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts
Tuesday, December 10, 2013
Textbox with placeholder by C#
It's here. A textbox with placeholder. Look like input control in html. Create a file named STextBox.cs and paste this code:
Monday, December 2, 2013
[Tutorial] Move form with no border
Just add the below snippet to your code (C#):
private const int WM_NCHITTEST = 0x84; // Mouse capture. private const int HTCLIENT = 0x1; // Client area. private const int HTCAPTION = 0x2; // Title bar. // This function intercepts all the commands sent to the application. // It checks if user click (WM_NCHITTEST) on the form area (HTCLIENT) // It fakes the result as the title bar (HTCAPTION) // This makes the form thinks user clicked on the title bar. // So we can click and move form by (fake) title bar. protected override void WndProc(ref Message message) { base.WndProc(ref message); if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT) { message.Result = (IntPtr)HTCAPTION; } }
Subscribe to:
Posts (Atom)