社区
C#
帖子详情
请教,如何知道一个函数是具体由哪个上次函数调用,或者一个事件具体由哪个控件触发?
huheng_0_0
2007-07-12 04:32:06
比如我有两个区域A,B, 我在A中点击鼠标左键,和在B中点击鼠标左键都触发同一事件Click(object sender, EventArgs e), 但是我想在这个事件中,知道具体是由A还是B引起的,就像VS调试中的Call Back栏那样,能知道上层调用,请问有什么办法知道这个信息吗?
只能这样,如果A是AClick(), B是BClick(),那不在讨论范围内,请指教,thanks!
...全文
187
10
打赏
收藏
请教,如何知道一个函数是具体由哪个上次函数调用,或者一个事件具体由哪个控件触发?
比如我有两个区域A,B, 我在A中点击鼠标左键,和在B中点击鼠标左键都触发同一事件Click(object sender, EventArgs e), 但是我想在这个事件中,知道具体是由A还是B引起的,就像VS调试中的Call Back栏那样,能知道上层调用,请问有什么办法知道这个信息吗? 只能这样,如果A是AClick(), B是BClick(),那不在讨论范围内,请指教,thanks!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
amandag
2007-07-12
打赏
举报
回复
一般根据sender和e都能判断
Visual00000000
2007-07-12
打赏
举报
回复
好好研究一下.net的事件机制吧
object sender是事件源
EventArgs e是传递的信息
Jinglecat
2007-07-12
打赏
举报
回复
.net 中事件委托原型,具有约定成俗的规范:处理程序的第一个参数表示触发此事件的对象
as,
void Button1_Click(object sender, EventArgs e) {
Button btn = sender as Button;
if(btn != null) {
Console.Write(btn.Text);
}
}
huheng_0_0
2007-07-12
打赏
举报
回复
又见老大, hbxtlhx(平民百姓-自已动手,丰衣足食) !!!!
好的,我慢慢研究一下各位的方案,明天结贴,thanks again.
北京的雾霾天
2007-07-12
打赏
举报
回复
又如:
private void button1_Click(object sender, EventArgs e)
{
someMethod();
}
private void someMethod()
{
StackTrace st = new StackTrace(true);
StackFrame Called = st.GetFrame(1);
System.Console.WriteLine(Called.GetMethod().Name);
}
//输出结果为:
button1_Click
北京的雾霾天
2007-07-12
打赏
举报
回复
可以使用StackTrace来实现,比如:
private void button1_Click(object sender, EventArgs e)
{
StackTrace st = new StackTrace(true);
StackFrame Called = st.GetFrame(1);
System.Console.WriteLine(Called.GetMethod().Name);
}
lovefootball
2007-07-12
打赏
举报
回复
ButtonA和ButtonB共用一个Click事件
在事件中
if (sender is ButtonA)
else if (sender is ButtonB)
qery
2007-07-12
打赏
举报
回复
有参数的话可以以参数类型识别
zh-wall-e
2007-07-12
打赏
举报
回复
事件里不是有个object 类型的 sender吗。。。
huheng_0_0
2007-07-12
打赏
举报
回复
自己顶一下~~ :)
Qt多信号链接
一个
槽
函数
时是查看是由哪个
触发
的
Qt多信号是查看是由哪个发出的问题描述解决办法 问题描述 我们可能会遇到这样
一个
问题,当有很多信号链接在同
一个
槽
函数
时,当执行槽
函数
时并不
知道
当前是谁
触发
了这个槽
函数
,此时我们需要用QObject::Sender()这个
函数
,在槽
函数
中查看
触发
该槽
函数
的Object指针,进而找出是
触发
的。 解决办法 语法:**类名 *tmp = qobject_cast<类名 *>(sender())...
C# 如何调用
一个
控件
的
事件
写代码时,我们经常会调用其他
控件
的
事件
,其实有很多种方法: 1. 把
事件
写在同
一个
函数
里面; 2. this.btnTiming.Click+=newSystem.EventHandler(this.btnTest_Click); 3. private void btnTest_Click(object sender, EventArgs e) { MessageBox.Show("Shadow"); ...
MFC 多个
控件
用同
一个
消息响应
函数
最近做
一个
小工具,里面用到很多的combox
控件
,为每个
控件
都添加
一个
消息响应
函数
感觉不太方便,太重复了,于是都调用同
一个
响应
函数
,但是问题来了,检测
控件
变化的
函数
没有参数,要在响应
函数
里边找到对应的ID,要花些心思,功夫不负有心人,解决方法如下: void CSQliteMFCDlg::OnCbnSelchangeComboxAny() { // TODO: 在此添加
控件
通知处理程序代码
QT 手动
触发
一个
槽
函数
QT 手动
触发
一个
槽
函数
在对ui界面的
控件
添加槽
函数
的时候,直接右键添加即可,在构造
函数
内也不会看到connect
函数
,但是会直线信号的发送与实现。 如果我们需要在别的地方也使用这个槽
函数
怎么办。 1.使用emit关键字即可,创建
一个
信号 signals: void returnPressed(); //手动调用条码框的回车槽
函数
//构造
函数
connect(this,SIGNAL(returnPressed()),this,SLOT(on_barcode_now_returnPres
Matlab GUI编程,如何在
一个
callback回调
函数
中调用另
一个
回调
函数
一、如何在
一个
callback回调
函数
中调用另
一个
回调
函数
网上找了好多帖子,都是在答非所问,我最终失去了耐心,自己去写个小demo碰碰运气吧,然后非常幸运,我解决了,哈哈,看下面的小案例。 图形界面非常简单,如下图所示: 系统生成了一堆代码,里面也包含回调,代码如下: function varargout = test(varargin) % TEST MATLAB code for te...
C#
110,556
社区成员
642,563
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章