使用方法
private void Form2_Load(object sender, EventArgs e)
{
TextBoxSelectTextChangedClass _TextSelectChanged = new TextBoxSelectTextChangedClass(textBox1);
_TextSelectChanged .SelectText += new EventHandler(_TextSelectChanged _SelectText);
}
void _TextSelectChanged _SelectText(object sender, EventArgs e)
{
this.Text = textBox1.SelectedText;
}
下面是全部的類 需要引用 System.Windows.Forms;
/// <summary>
/// 爲TextBox增加Select事件
/// qq:116149
/// [email protected]
/// </summary>
public class TextBoxSelectTextChangedClass: NativeWindow
{
private TextBox m_TextBox;
public TextBoxSelectTextChangedClass(TextBox p_TextBox)
{
if (p_TextBox == null) throw new Exception("TextBox不能爲空");
m_TextBox = p_TextBox;
m_SelectionStart = p_TextBox.SelectionStart;
m_SelectionLength = p_TextBox.SelectionLength;
base.AssignHandle(p_TextBox.Handle);
}
public event EventHandler SelectText;
private int m_SelectionStart = 0;
private int m_SelectionLength = 0;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 512 || m.Msg == 256 || m.Msg == 177)
{
if (m_TextBox.SelectionLength != m_SelectionLength || m_SelectionStart != m_TextBox.SelectionStart)
{
m_SelectionStart = m_TextBox.SelectionStart;
m_SelectionLength = m_TextBox.SelectionLength;
if (SelectText != null) SelectText(m_TextBox, new EventArgs());
}
}
}
}