
//以下代码,在Form1_Load中,为所有按钮添加事件,点击后显示此按钮的id
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control c in thisControls)
{
try
{
Button b = c as Button;
bClick += new EventHandler(b_Click);
}
catch
{ }
}
}
void b_Click(object sender, EventArgs e)
{
Button b = sender as Button;
MessageBoxShow(bName);
}
每个事件都有有个Sender 参数,通过它即可判断,前提是你要能区分出那个类型的控件,比如:都是Button按钮,你可以这样做
Button source=(Button as sender);
if(source!==null)
{
//此时说明你点击的是按钮,具体那个按钮,要根据你设计时的需求来,比如你的按钮中的Tag标识类是那个按钮,那你就可以根据Tag属性来进行相关的判断 *** 作
}
不应该是按下数字键之后就执行运算 *** 作,而应该是按下数字键后将所按的数字记录下来,当按下运算符键的时候在执行运算 *** 作。用全局变量记录在两次运算符之间所输入的值,然后将这些值组合成一个值参与运算,这样就可以进行一位数以上的运算了
lz不如直接说出你的需求,很少见到要“获取 thistsmiExit 所注册的所有事件”的。
说出你想干什么,也许能给个思路。
个人觉的你实现你的需求的方法不太好。
using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemLinq;
using SystemText;
using SystemWindowsForms;
namespace textBoxPaste
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IDataObject iData = ClipboardGetDataObject();
if (iDataGetDataPresent(DataFormatsText))
{
textBox1Text = (String)iDataGetData(DataFormatsText);
}
}
}
}
一般情况在,当我们的软件拥有焦点时,C# 只要注册一个键盘事件就可以拦截 键盘按键; 但: 软件在后台运行,就意味着你的焦点可能在系统上,也可能在 其他软件上,也可能在自己的软件上;——这种焦点都不在自己的软件上又想 捕获 ctrl+v 命令,方法只有一个: 拦截Windows 系统消息;你将 Windows 消息进行拦截,过滤出来 所有的键盘的 ctrl+v 按键——然后处理为 自己的 程序; 源码有——但是处理的是 拦截ctrl+S,禁止 快捷键保存;拦截 ctrl+Alt+Delete,禁止键盘启动 任务管理器的;要不要?(不过,即使要,我也不知道自己的磁盘上找不找得到);
以上就是关于c# winform 比如说一个窗体中有很多个button ,当鼠标在窗体中点击的时候如何得到这个button的id全部的内容,包括:c# winform 比如说一个窗体中有很多个button ,当鼠标在窗体中点击的时候如何得到这个button的id、在C# WinForm应用程序中如何获取当前窗体中被激发的控件名称、C#获取Button的Text值,Winform下怎么获取我知道,WPF下又怎么获取(急)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)