一個具有默認值的TextBox的制作

一個具有默認值的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;
            }
        }

你可能感兴趣的:(一個具有默認值的TextBox的制作)