C#帶按鈕的文本框TextBoxContainButton


經常需要用到各種組合控件,每次組合太麻煩,通過打包成自定義控件,方便調用。

帶按鈕的文本框,如下圖:

clip_image001

文本框內可以輸入文本,響應文本框內容變化事件,按鈕可以設置點擊事件,圖標

通過3個組合控件實現。

1 新建自定義控件,添加兩個文本框,1個按鈕,1個鼠標提示控件(ToolTip)。

一個文本框作為背景,另一個文本框作為輸入框,一個按鈕點擊用,只需通過設置控件屬性,編輯成如下效果

clip_image002

2 添加常用屬性

[Category("自定義"), Description("按鈕圖片")]

public Image ButtonImage

{

set

{

button.Image = value;

}

get

{

return button.Image;

}

}

[Category("自定義"), Description("文本框鼠標懸停提示文本")]

public string TextBoxToolTipText

{

set

{

toolTip1.SetToolTip(this.textBoxFront, value);

}

get

{

return toolTip1.GetToolTip(this.textBoxFront);

}

}

[Category("自定義"), Description("按鈕鼠標懸停提示文本")]

public string ButtonToolTipText

{

set

{

toolTip1.SetToolTip(this.button, value);

}

get

{

return toolTip1.GetToolTip(this.button);

}

}

[Category("自定義"), Description("文本框內文本")]

public string TextBoxText

{

set

{

textBoxFront.Text = value;

}

get

{

return textBoxFront.Text;

}

}

private bool textBoxReadOnly = false;

[Category("自定義"), Description("文本框只讀")]

public bool TextBoxReadOnly

{

set

{

textBoxReadOnly = value;

textBoxFront.ReadOnly = textBoxReadOnly;

textBoxFront.ReadOnly = textBoxReadOnly;

}

get

{

return textBoxReadOnly;

}

}

[Category("自定義"), Description("文本框背景色")]

public Color TextBoxBackColor

{

set

{

textBoxBack.BackColor = value;

textBoxFront.BackColor = value;

}

get

{

return textBoxBack.BackColor;

}

}

 

3 添加按鈕點擊事件(其他事件添加類似)

public delegate void ButtonClickEventHandler(Object sender, EventArgs e);

public event ButtonClickEventHandler ButtonClick; //聲明事件

protected virtual void OnButtonClick(EventArgs e)

{

if (ButtonClick != null)

{ // 如果有對象注冊

ButtonClick(this, e); // 調用所有注冊對象的方法

}

}

private void button_Click(object sender, EventArgs e)

{

OnButtonClick(e); // 調用 OnButtonClick方法

}

 

4 屬性的使用:

clip_image003

5 事件的使用

clip_image004


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM