杂记
 


C#编写带提示文本框

作者:  2012-04-04 09:17:34     分类:Delphi     标签:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsControlLibrary1
{
    public partial class UserControl1 : UserControl
    {
 
        private string initText; // 初始化提示
 
        public UserControl1()
        {
            InitializeComponent();
        }
 
        /// 
        /// 使文本框大小随控件变化。
        /// 
        ///
        ///
        private void UserControl1_Resize(object sender, EventArgs e)
        {
            textBox1.Top = 0;
            textBox1.Left = 0;
            textBox1.Width = this.Width;
            this.Height = textBox1.Height;
        }
 
        /// 
        /// 控件高度随文本框变化。
        /// 
        ///
        ///
        private void textBox1_SizeChanged(object sender, EventArgs e)
        {
            this.Height = textBox1.Height;
        }
 
        /// 
        /// 属性:获取及设置初始化提示文本。
        /// 
        public String InitText
        {
            get
            {
                return initText;
            }
 
            set
            {
                initText = value;
                setGrayText(true);
            }
        }
 
        /// 
        /// 设置灰色显示的初始化提示文本或者正常颜色文本。
        /// 
        ///
        private void setGrayText(bool p)
        {
            if (p)
            {
                textBox1.Text = initText;
                textBox1.ForeColor = Color.Gray;
            }
            else
            {
                textBox1.ForeColor = this.ForeColor;
            }
        }
 
        /// 
        /// 文本框获得焦点时显示灰色的初始化文本。
        /// 
        ///
        ///
        private void textBox1_Enter(object sender, EventArgs e)
        {
            if (textBox1.Text == initText)
            {
                textBox1.Text = "";
                setGrayText(false);
            }
        }
 
        /// 
        /// 失去焦点时恢复显示正常文本颜色。
        /// 
        ///
        ///
        private void textBox1_Leave(object sender, EventArgs e)
        {
            setGrayText(textBox1.Text == "");
        }
    }
}
更多
阅读(1069)     评论(0)