// -----------------------------------------------------------------------------
// 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();
}
}
}
}
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:
Sunday, December 8, 2013
Simple photoshop script
This is my simple script to join images using photoshop:
// create a new document size 30000x500 pixels at 72ppi
var doc = app.documents.add (30000, 500, 72);
// prepare the real width of the joined image
var wid = new UnitValue(0, "px");
// loop through all images
// 3 is the number of images
// images are store in c:\img folder
// images' file name: img1.jpg, img2.jpg, ...
for (i = 1; i <= 3; i++) {
// take a file
var fileRef = File("C:\\imgs\\img" + i + ".jpg");
// open the image in a new document
var imgdoc = app.open(fileRef);
// resize the opened image to height 500px
var ws = 500 * imgdoc.width / imgdoc.height;
imgdoc.resizeImage(ws, 500);
// copy the resized image to working document
imgdoc.selection.selectAll();
imgdoc.selection.copy();
app.activeDocument = doc;
doc.paste();
// get the top layer
var pslayer = doc.layers[0];
// move the pasted image to the right position
var position = pslayer.bounds;
position[0] = wid - position[0];
position[1] = 100 - position[1];
pslayer.translate(position[0], -position[1]);
// close the opened image and update the real width
app.activeDocument = imgdoc;
wid += imgdoc.width;
imgdoc.close(SaveOptions.DONOTSAVECHANGES);
}
Saturday, December 7, 2013
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:
Comments (Atom)