一個具有默認值的TextBox的制作
原理:利用一個Label与一個TextBox結合,顏色設成一致.然后再處理相關事件達到效果.
在控件上放一個Label.
this.borderLabel.BackColor = System.Drawing.SystemColors.Window;
this.borderLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.borderLabel.Cursor = System.Windows.Forms.Cursors.IBeam;
this.borderLabel.Dock = System.Windows.Forms.DockStyle.Fill;
this.borderLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.borderLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.borderLabel.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.borderLabel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.borderLabel_MouseDown);
private void borderLabel_MouseDown(object sender, MouseEventArgs e)
{
textBox.Visible = true;
textBox.Focus();
}
在Label的上方放一個TextBox
this.textBox.BackColor = System.Drawing.SystemColors.Window;
this.textBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox.Location = new System.Drawing.Point(3, 5);
this.textBox.Visible = false;
this.textBox.Enter += new System.EventHandler(this.textBox_Enter);
this.textBox.Leave += new System.EventHandler(this.textBox_Leave);
private void textBox_Enter(object sender, EventArgs e)
{
borderLabel.Image = null;
//borderLabel.Text="";
}
private void textBox_Leave(object sender, EventArgs e)
{
if (textBox.Text.Length == 0)
{
borderLabel.Image = searchProviders.ProviderImage;
//borderLabel.Text="請輸入內容";
textBox.Visible = false;
}
}