我的窗口中有个大的splitContainer1充满整个窗口,splitContainer1中有2个splitContainer,分别是splitContainer2和splitContainer3.在splitContainer2和splitContainer3中各有个TREEVIEW和LISTVIEW,我要在LISTVIEW中进行鼠标右击事件进行刷新等操作,这就需要判断鼠标右击时鼠标在哪个控件内,C#如何获取鼠标点击处的控件名称?
我用Point pt = Cursor.Position;
pt = this.PointToClient(pt);
Control ctrl = this.GetChildAtPoint(pt) as Control;
if (ctrl != null)
MessageBox.Show(ctrl.Name);
弹出的都是splitContainer1。我应该怎么做,请说详细点,谢谢了啊
我用Point pt = Cursor.Position;
pt = this.PointToClient(pt);
Control ctrl = this.GetChildAtPoint(pt) as Control;
if (ctrl != null)
MessageBox.Show(ctrl.Name);
弹出的都是splitContainer1。我应该怎么做,请说详细点,谢谢了啊
button1得click事件是 button_click(object sender, EventArgs e)
button2得click事件也是 button_click(object sender, EventArgs e)protect void button_click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Name);
}这样就可以得到到底是点击了 button1 还是 button2
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication11
{
public partial class Form1 : Form, IMessageFilter
{
public Form1()
{
InitializeComponent(); Application.AddMessageFilter(this);
} bool IMessageFilter.PreFilterMessage(ref Message m)
{
if (m.Msg == 0x201)
{
Control C = GetControl(this);
if (C != null)
MessageBox.Show(C.Name);
return true;
}
return false;
} Control GetControl(Control C)
{
Control Temp = C.GetChildAtPoint(C.PointToClient(Cursor.Position));
if (Temp == null)
return C;
else
return GetControl(Temp);
}
}
}