我使用流動代碼來創建TextBoxButton控件。當我在主類的「TextBoxButton_Click」void中編寫代碼時,它工作正常。但是當我將這個自定義控件拖放到窗體上時,如何在雙擊此控件時管理點擊事件?如何確定用戶點擊文本框或文本框內的按鈕?TextBoxButton單擊事件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CustomControl
{
public class TextBoxButton : TextBox
{
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
public Button mbutton;
public Button button
{
get { return mbutton; }
set { this.mbutton = value; }
}
protected override void OnCreateControl()
{
this.Controls.Add(this.mbutton);
SetRightToLeft();
base.OnCreateControl();
}
private void SetRightToLeft()
{
if (RightToLeft == RightToLeft.Yes)
{
mbutton.Dock = DockStyle.Left;
}
else
{
mbutton.Dock = DockStyle.Right;
}
}
protected override void OnRightToLeftChanged(EventArgs e)
{
SetRightToLeft();
base.OnRightToLeftChanged(e);
}
public TextBoxButton()
{
mbutton = new Button();
mbutton.Width = 20;
mbutton.Cursor = Cursors.Hand;
mbutton.Click += TextBoxButton_Click;
// Send EM_SETMARGINS to prevent text from disappearing underneath the button
SendMessage(Handle, 0xd3, (IntPtr)2, (IntPtr)(mbutton.Width << 16));
}
private void TextBoxButton_Click(object sender, EventArgs e)
{
}
}
}