Tag: 活动

禁用单击按钮事件c#

我在Visual Studio 2013 C#中编程。 我想要一个function来短时间禁用一个按钮。 我试过了button.Enabled=false ,但我看到当我点击它时它被禁用然后点击操作就会在我在程序的其他地方启用该按钮后立即启动。 如何清除该事件或在禁用按钮时阻止它们? 此致,Krzysztof

如何在不等待事件监听器运行的情况下触发事件?

我对.NET(C#)中的事件有疑问。 我必须编写代码,用于运行后台任务的几种情况,并且我想通知主线程或控制器类已发生某些事情,例如任务已完成,或已完成复制文件,但我不知道t希望后台任务等待主线程的委托处理事件。 我想做一些像消息传递这样的事情:发送消息,但谁在乎他们用它做什么。 例如: 编写一个类来依次处理多个进程,一个接一个。 每个进程都需要在后台线程上运行。 当工作完成时,事件触发并告诉控制器它已完成(假设使用OnCompleted()方法) 问题是如果控制器的事件处理程序用于启动后续进程,则先前进程的OnComplete方法将保留在调用堆栈上(永远不会完成执行),直到所有进程完成为止。 在那种情况下,后台任务如何通知控制器类工作完成而不在堆栈上保留事件提升方法? 示例2:备份程序。 后台线程运行以将每个文件复制到目标。 后台需要通知 UI最后复制的文件,但不需要等待UI更新。 相反,它只是想说,“顺便说一句,这里有一些信息。现在,让我重新开始工作。” 事件监听器不应阻止事件提升者的处理。

C#如何禁用密钥

当按下“ENTER”键时,如何防止插入符号进入文本框中的下一行? 换句话说,如何在文本框中禁用“ENTER”或“RETURN”键?

什么是触发Application_End事件的场景?

Asp.net有一个Application_End事件,它发生在应用程序结束时,就像这样 void Application_End(object sender, EventArgs e) { } 我的问题如下:这个事件什么时候发生在真实中,即什么样的情况触发它? 假设我有一个24x7x365运行的银行Web应用程序,它一次连续执行并从数千个地方访问,然后这个Application_End事件何时发生? 什么样的情况对此负责?

单身人士事件

我正在重构一些旧代码,我有很多像这样的静态事件 public static event Action Updated; public static void OnUpdated() { if (Updated != null) Updated(); } 我发现使用懒惰单例通常比使用静态类更好: 在第一次Instance调用之前不会消耗内存; 私有序列化/反序列化。 所以我重构那些单身人士,现在我有代码分析抱怨。 这样的事件显然冒犯了CS1009,但我有些疑惑: 对于静态事件, sender没有意义,为什么以及在什么情况下单例sender可以使用? 我只能考虑反序列化,但它是一个内部类实现(而且类是密封的),所以我可以注意不使用事件,如果我需要,我可以创建私有事件。 创建e (从EventArgs派生)是简单地传递参数的不必要的复杂性,我讨厌的最大部分是将其移动到命名空间级别, EventArgs添加的唯一东西(有时可能有用)是Empty然后你有几十个类…EventArgs 。 我可以想到有时你需要取消或处理机制,但它从来都不需要我。 当使用事件时,每个人都期望(object sender, SomeEventArgs args) ,这是唯一的原因吗? 总而言之,这是我的主要问题(但我希望澄清其他问题):CS1009和单身,我应该修复事件还是简单地压制消息? PS:相关科目: 这个 , 这个和这个 。 我发现了这个问题。 根据事件设计指南,我必须使用Event (忽略这个问题),其中T基于EventArgs类。 关于静态事件中的sender : 在静态事件上, sender参数应为null。 这是一个设计指南 , 对我来说可能看起来不太好 ,但是会受到其他人(正在阅读/维护我的代码)的欢迎。 它对我来说打破了KISS和YAGNI的原则。 我想的越多,我越不确定该怎么做。

从C ++ DLL中触发C#中的事件

我有一个与Cisco服务器(UCCX)通信的非托管C ++ DLL。 它通过TCP / IP向此服务器发送消息和从该服务器接收消息。 现在它收到一些类型的消息,其中包含一些需要发送到C#GUI的参数,这些参数将在屏幕上显示这些参数。 请告诉我一个有效的方法来从这个DLL中触发C#中的事件。

等待内部方法直到捕获事件

我在C#中遇到了这个问题。 我做了一个方法,从一个名为Phone.GetLampMode();的DLL调用一个函数Phone.GetLampMode(); 现在Phone.GetLampMode不会返回任何内容。 在’ onGetLampModeResponse ‘事件中返回数据。 有没有办法可以在我的方法中等待,直到我从onGetLampModeResponse事件中获取数据? public bool checkLamp(int iLamp) { Phone.ButtonIDConstants btn = new Phone.ButtonIDConstants(); btn = Phone.ButtonIDConstants.BUTTON_1; btn += iLamp; Phone.GetLampMode(btn, null); return true; } private void Phone_OnGetLampModeResponse(object sender, Phone.GetLampModeResponseArgs e) { var test = e.getLampModeList[0].getLampMode.ToString(); }

OnMouseMove不会在WPF中的canvas上触发

我已完成自定义图表控件,我想在光标后面绘制一个简单的十字形。 该图表在Canvas上实现为PolyLine,我在Canvas的OnMouseMove事件中绘制两条线来更改它们的坐标。 令人惊讶的是发现当MainGUI线程空闲时,事件只被调用每10秒左右事件(UI完全响应,如果我暂停应用程序主线程在App mainForm.ShowDialog()) 。 关于如何找到原因的任何想法都会发生? 我使用OnMouseMove或PreviewOnMouseMove获得相同的性能。 编辑:这就是我画十字架的方式(无论如何,如果我在OnMouseMove上设置一个断点,它只会不时停止)。 XAML: CS: public Chart() { _line = new Polyline(); _line.Stroke = Brushes.Orange; _crossX = new Line(); _crossY = new Line(); _crossX.Stroke = Brushes.Orange; _crossY.Stroke = Brushes.Orange; _crossX.StrokeThickness = 1; _crossY.StrokeThickness = 1; InitializeComponent(); this.DrawArea.Children.Add(_line); this.DrawArea.Children.Add(_crossX); this.DrawArea.Children.Add(_crossY); } private void DrawArea_MouseMove(object sender, MouseEventArgs e) { Point mousePosition = […]

按钮单击事件无法正常工作

以下代码处理按钮单击事件。 当用户第一次点击时,它将标签设置为“第一次”,当用户第二次点击时,它将标签设置为“第二次”。 但它不能正常工作。 当我第一次点击它时,它将标签设置为“第一次”,这是正确的,但是当我第二次点击时,没有任何事情发生。 我的代码: int counter=0; protected void btnCompTagUpdate_Click(object sender, EventArgs e) { if (counter == 0) { lable1.Text=”First Time”; counter++; } else if (counter == 1) { lable1.Text=”Second Time”; counter–; } } 我该如何解决?

Visual Studio 2010显示来自代码的可用事件

在工作和家里我安装了VS2010。 但在工作中我有一个很酷的function。 在代码隐藏文件后面我有两个下拉菜单。 当我在左边选择一个对象时,可以说是testButton或者是Default2(一个页面类),在右边的一个中,我得到该对象的所有可用事件,当我选择一个事件时,Visual Studio会在我的代码隐藏文件中自动生成它。 在我的家VS我实际上有2次下降,但他们的工作不同。 我在右边有可用的对象但是当我选择例如testButton时它会向我显示aspx页面并指向这个按钮:/我应该在VS配置中设置sommething还是在工作中我有一些我不知道的插件的? 有任何想法吗?