想给textbox添加事件,比如click,mousedown ,mouseup,Mousemove 不知道哪位大哥做过,谢谢!
解决方案 »
- 【Linq】多个集合的结果合并后遍历
- 谁用过vs2010的 如何将vs2008下面的report项目导入??
- ComboBox控件排序问题
- 如何在asp和asp.net中共享Session
- 怎样改写DataGridView,让他有以下功能?(高手请进)
- 类型或命名空间名称“Web”在类或命名空间“Microsoft”中不存在(是否缺少程序集引用?),
- 想做这样一个效果
- greennetboy(绿色家园)请进,接分了!
- 如何限制不能改变DataGrid的列宽?
- 恭喜CSDN15位当选的MVP,并鼓励一下后面的兄弟姐妹们!
- 求MapInfo的学习资料
- DataGrid如何绑定DropDownList ?在线求解!!
textBox1.MouseDown +=new MouseEventHandler(TextBoxMouseDownHandler);
web
this.textBox1.Attributes.Add("onblur", "test(this);");
{
};
protected void Button1_Click(object sender, EventArgs e)
{
//单击事件,需要实现的功能
}其他类似
textbox 本身没有支持click ,mousedown,mouseup,mousemove事件
别无他法。没例子。如果你用过vc6,vb6,你会明白我的意思。反之,你可以跟帖,我有空了写个例子给你。
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;namespace CSharpMobile02
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} [DllImport("coredll.dll")]
private extern static int CallWindowProc(IntPtr lpPrevWndFunc, IntPtr hwnd, uint msg, uint wParam, int lParam);
[DllImport("coredll.dll")]
public static extern IntPtr SetWindowLong(IntPtr hwnd, int nIndex, IntPtr dwNewLong);
public const int GWL_WNDPROC = (-4);
public IntPtr OldProc = IntPtr.Zero;
public delegate int WndProcHandler(IntPtr hwnd, uint msg, uint wParam, int lParam);
WndProcHandler myproc = null;
public const int WM_LBUTTONDOWN = 0x201;
public const int WM_LBUTTONUP = 0x202;
public const int WM_MOUSEMOVE = 0x200;
int MyWndProc(IntPtr hwnd, uint msg, uint wParam, int lParam)
{
if (msg == WM_LBUTTONDOWN)//处理mousedown
{
textBox1.Text = "WM_LBUTTONDOWN";
}
else if (msg == WM_LBUTTONUP)//处理mouseup和click
{
textBox1.Text = "WM_LBUTTONUP";
}
else if (msg == WM_MOUSEMOVE)//处理mouse_move
{
textBox1.Text = "WM_MOUSEMOVE";
}
return CallWindowProc(OldProc, hwnd, msg, wParam, lParam);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
myproc = new WndProcHandler(MyWndProc);
OldProc = SetWindowLong(textBox1.Handle, GWL_WNDPROC, Marshal.GetFunctionPointerForDelegate(myproc));
}
}
}通过测试,可以在文本框中显示出对应的消息名。也就能处理对应的消息了。
比较地道的方法是,直接在form_load方法里添加
textbox.click+=new new EventHandler(textBox1_Click);
有MouseClick、MouseDown、MouseUp事件,你仔细找找
Control.MousePosition