下面的AutoFillForm可以不继承,只是我用来自动填充窗体控件的一个接口
public interface AutoFillFrom
{
string DataField { get; set; }
string Description { get; set; }
}
public partial class TxtBtn : UserControl,AutoFillFrom
{
private TxmrCtrl.TxtLine srButtonTextTextbox;
private Button srButtonTextButton;
//声明委托
public delegate void srButtonTextButton_Clickhandle(object sender, EventArgs e);
//声明事件(按钮单击)
public event srButtonTextButton_Clickhandle btn_Click;
//声明委托
public delegate void srButtonTextTextbox_txtChangedHandle(object sender, EventArgs e);
public event srButtonTextTextbox_txtChangedHandle txtChanged;
public string DataField
{ get; set; }
public string Description
{ get; set; }
public string EditValue
{ get; set; }
/// <summary>
/// 属性EditText
/// </summary>
public string EditText
{
get { return srButtonTextTextbox.Text; }
set { srButtonTextTextbox.Text = value; }
}
/// <summary>
/// 属性txtMaxLength
/// </summary>
public int txtMaxLength
{
get { return srButtonTextTextbox.MaxLength; }
set { srButtonTextTextbox.MaxLength = value; }
}
public TxtBtn()
{
this.Height = 16;
srButtonTextTextbox = new TxmrCtrl.TxtLine();
srButtonTextButton = new Button { Text = "…" };
srButtonTextButton.TabStop = false;
srButtonTextButton.FlatStyle = FlatStyle.Flat;
this.Controls.Add(srButtonTextTextbox);
this.Controls.Add(srButtonTextButton);
srButtonTextTextbox.Left = 0;
srButtonTextTextbox.Top = 0;
srButtonTextTextbox.Width = this.Width - 14;
srButtonTextTextbox.Height = 16;
srButtonTextButton.Left = srButtonTextTextbox.Width - 1;
srButtonTextButton.Top = -1;
srButtonTextButton.Width = 16;
srButtonTextButton.Height = 18;
this.Resize += srButtonText_Resize;
this.srButtonTextButton.Click += srButtonTextButton_Click;
this.srButtonTextTextbox.TextChanged += srButtonTextTextbox_TextChanged;
}
private void srButtonText_Resize(object sender, System.EventArgs e)
{
this.Height = 16;
srButtonTextTextbox.Left = 0;
srButtonTextTextbox.Top = 0;
srButtonTextTextbox.Width = this.Width - 14;
srButtonTextTextbox.Height = 16;
srButtonTextButton.Left = srButtonTextTextbox.Width - 1;
srButtonTextButton.Top = -1;
srButtonTextButton.Width = 16;
srButtonTextButton.Height = 18;
}
private void srButtonTextButton_Click(object sender, EventArgs e)
{
if (btn_Click != null)
{
btn_Click(sender, new EventArgs());
}
}
private void srButtonTextTextbox_TextChanged(object sender, EventArgs e)
{
if (txtChanged != null)
{
txtChanged(sender, new EventArgs());
}
}
}