using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Controls.Properties;
namespace Controls
{
public delegate void DTextStrChanged(string textStr);
public partial class CTextBox : UserControl
{
public CTextBox()
{
InitializeComponent();
tbx_text.Text = DefaultText;
//if (PasswordChar && tbx_text.Text != DefaultText)
//{
//}
//else
//{
//}
//if (PasswordChar)
//{
// tbx_text.PasswordChar = '*';
// btn_eye.Visible = true;
//}
//else
//{
//}
if (!PasswordChar)
{
tbx_text.PasswordChar = '\0';
btn_eye.Visible = false;
}
else
{
tbx_text.PasswordChar = '\0';
btn_eye.Visible = true ;
}
}
///
/// 文本改变事件
///
public event DTextStrChanged TextStrChanged;
///
/// 控件文本
///
private string _text = string.Empty;
public string TextStr
{
get
{
return _text;
}
set
{
if (value == string.Empty)
{
tbx_text.PasswordChar = '\0';
tbx_text.ForeColor = Color.DarkGray;
tbx_text.Text = DefaultText;
_text = value;
}
else
{
if (PasswordChar)
tbx_text.PasswordChar = '*';
else
tbx_text.PasswordChar = '\0';
tbx_text.ForeColor = Color.FromArgb(64, 64, 64);
_text = value;
tbx_text.Text = _text;
}
}
}
///
/// 默认文本
///
private string _defaultText = string.Empty;
public string DefaultText
{
get { return _defaultText; }
set { _defaultText = value; }
}
///
/// 是否以密码形式显示
///
private bool _passwordChar = false;
public bool PasswordChar
{
get { return _passwordChar; }
set
{
_passwordChar = value;
if (PasswordChar)
{
tbx_text.PasswordChar = '*';
}
else
{
tbx_text.PasswordChar = '\0';
}
}
}
private void TextBox_Enter(object sender, EventArgs e)
{
lbl_line.Height = 2;
lbl_line.BackColor = Color.FromArgb(18, 150, 219);
if (tbx_text.Text == DefaultText)
{
tbx_text.SelectionStart = 0;
tbx_text.SelectionLength = 0;
}
}
private void TextBox_Leave(object sender, EventArgs e)
{
lbl_line.Height = 1;
lbl_line.BackColor = Color.Gray;
}
private void tbx_text_TextChanged(object sender, EventArgs e)
{
if (tbx_text.Text != DefaultText && tbx_text.Text != TextStr)
TextStr = tbx_text.Text;
if (TextStrChanged != null)
TextStrChanged(TextStr);
if (PasswordChar && TextStr != string.Empty)
tbx_text.PasswordChar = '*';
else if (TextStr ==string .Empty )
tbx_text.PasswordChar = '\0';
}
private void tbx_text_KeyDown(object sender, KeyEventArgs e)
{
if (tbx_text.Text == DefaultText && e.KeyCode != Keys.Back)
tbx_text.Text = string.Empty;
}
private void tbx_text_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (tbx_text.Text == DefaultText)
{
tbx_text.SelectionStart = 0;
tbx_text.SelectionLength = 0;
}
}
}
private void btn_eye_MouseDown(object sender, MouseEventArgs e)
{
tbx_text.PasswordChar = '\0';
btn_eye.BackgroundImage = Resources.Show;
//tbx_text.Width = tbx_text.Width - 30;
}
private void btn_eye_MouseUp(object sender, MouseEventArgs e)
{
if (TextStr != string.Empty)
tbx_text.PasswordChar = '*';
btn_eye.BackgroundImage = Resources.Hide;
tbx_text.Width = tbx_text.Width + 30;
tbx_text.Focus();
tbx_text.SelectionStart = 0;
tbx_text.SelectionLength = 0;
}
private void TextBox_Load(object sender, EventArgs e)
{
if (!PasswordChar)
{
tbx_text.PasswordChar = '\0';
btn_eye.Visible = false;
}
else
{
tbx_text.PasswordChar = '\0';
btn_eye.Visible = true ;
}
}
}
}