在一个插件架构内发射事件与单一应用的关系
我对我试图在事件中开发的插件架构感到困惑.在一个应用程序中,我可以做到这一点:(显然这是我要完成的工作的非常简单的版本,如果这是我的代码,那么可以更轻松地完成此操作,只需尝试遵循逻辑;) public Form1() { public event EventHandler OnValueOver5Chars; Main() { OnValueOver5Chars+= new EventHandler(WarnUser); .... } private void textBox_Changed( object sender, EventArgs e ) { if( sender.Text.count() > 5 ) OnValueOver5Chars(sender, e); // WORKS HERE } private void WarnUs
12 2024-04-26
编程技术问答社区
C# Outlook 在邮件成功发送时移除事件?
我有一个插件Outlook,我创建了一个事件,当电子邮件发送成功时,此代码: private Outlook.Items _items; private void ThisAddIn_Startup(object sender, System.EventArgs e) { Outlook.Application application = this.Application; _items = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail).Items; _items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd); } 然后,我有用户设置,如果用户未选择,我想删除该事件(items_itemadd). 我应该做吗? 解决方案 好吧,跟踪Se
22 2024-04-26
编程技术问答社区
鼠标滚轮事件启动
我在鼠标轮毂事件上调用我的私人方法有问题.实际上,当我仅递增变量或在标题栏中显示某些内容时,我的鼠标轮毂事件会正确触发方法取决于滚动速度,即一次滚动完成一次卷轴一次慢慢调用私人方法,但是当高速呼叫滚动时,私有方法会根据滚动速度多一次. 有关进一步说明,我将显示i在标题栏中显示I值的示例代码,并根据滚动速度正确地将其添加到列表框控件中滚动速度,该方法仅被调用一次. public partial class Form1 : Form { ListBox listBox1 = new ListBox(); int i = 0; public Form1() { InitializeComponent(); // Settnig ListBox control properties this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(
18 2024-04-26
编程技术问答社区
哪一个按钮甚至提高了onclick?
我创建了3 LinkButton它们都有相同的onclick事件,现在我必须找到哪个按钮称为onclick event,它是ID 解决方案 您的功能应该具有"发送者" object. void lnk_Click(object sender, EventArgs e) { LinkButton btn = sender as LinkButton; if (btn != null) { String id =
16 2024-04-26
编程技术问答社区
通过Windows键退出后,返回应用程序的事件[UWP][Win10 Mobile]
我很难找到适合我的事件 - 在我的应用程序[UWP Windows 10移动应用程序]中浏览文件时的用户可以点击它,然后我在默认应用程序中启动它 Windows.System.Launcher.LaunchFileAsync 我的应用程序是"最小化"(就像按下Windows键一样),用户可以在他想要的任何应用程序中与文件进行交互.现在,他按下后钥匙返回我的应用程序.您知道现在有任何事件吗?我想更新文件(如果更改了),但是找不到任何事件来检查它. 解决方案 看一下 app lifecycle ,我认为您应该注册启动和恢复的事件处理程序,一个用于从终止状态切换,另一个用于暂停状态. 当用户切换回已终止的悬挂应用程序时,该应用程序应在其 onlaunched methat. 如果一个应用程序注册了 application.resuming 事件,当从悬挂式状态恢复应用程序时,它就被称为.您可以使用此事件处理程序刷新应用程序内容和数据. 其他解决方案 了解U
12 2024-04-26
编程技术问答社区
FormView_Load被重写 C# ASP.NET
我有一个FormView,其负载事件刚刚决定停止工作.我进行了一些调试,并注意到它正在达到代码,但是无论出于何种原因,我在加载事件中添加的属性不再在屏幕上显示.仿佛在FormView的加载事件之后正在发生某种事情,而没有我的任何额外属性进行重新加载.我在停止工作之前进行的唯一修改是我在页面之前添加了一个会话变量.那不应该引起如此急剧的变化. 这是我的代码: protected void FormView1_Load(object sender, EventArgs e) { RadioButton rbinjury = (RadioButton)FormView1.FindControl("rbinjury"); RadioButton rbproperty = (RadioButton)FormView1.FindControl("rbproperty"); RadioButton rbboth = (RadioButton)FormView
8 2024-04-26
编程技术问答社区
C#-编写一个COM服务器--事件不在客户机上发生
我已经在具有VB6客户端的C#中实现了COM服务器. 发射我的事件时,处理程序始终是无效的 - 看来VB6应用程序永远不会订阅我的事件. VB6应用程序是现有的第三方应用程序,似乎没有提供错误消息. 普通方法可以从com客户端 - >服务器. 从 我可以做些什么来调试发生了什么事?或为什么我的活动不起作用? 这是我代码的快速示例片段: [ComVisible(true), Guid(Constants.CLASS_IID), ProgId(Constants.PROG_ID), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(IMyServiceEvents))] public class MyClass : Control, IMyService, IMyServiceEvents
12 2024-04-26
编程技术问答社区
为多个表单设置单一事件处理程序
我有一些形式,在其中,我有一些事件函数,这些功能基本上是相同的 我试图实现"共享"类并将EventHandler链接到该功能,但是当我给该功能提供必要的保护级别时,它会抱怨它的非静态性,我也必须使其静态. 我不是静态功能的粉丝,所以问:有更好的方法吗? (如果上述不清楚:我想这样做:为.NET中的多个按钮设置单个事件处理程序?,但使用多个形式而不是多个控件) 编辑:根据请求以获取更多信息: 我对代码重复的强迫症相当强大,并且我的程序同时具有多种表单/隐藏的表单,显然我想在按下" x"时关闭整个程序: class Shared { public static void FormClosed(object sender, FormClosedEventArgs e) { Application.Exit(); } public static void FormClosing(object sender, F
18 2024-04-26
编程技术问答社区
地铁应用程序 在游戏中举行活动
我做了一个用户导航角色的游戏.由于它是为PC和平板电脑设计的(带有Win8),因此有两个选择方法. 1)使用键盘(Key_Down和Key_Up事件) 2)使用触摸并保持(Tapped和Holding事件) 不幸的是,Holding事件存在问题,因为它在 long 时间段(我认为1秒)之后升高.我不得不使用Word long ,因为这确实是游戏中很长的时间. 现在,我需要一个更好的解决方案.游戏中有一个屏幕上的操纵杆,从四个代表箭头的图像中加重了. 如何使玩家的角色立即通过箭头图像上的轻按和持有? 解决方案 I'am使用JavaScript用于Metro App Dev,并且I'am使用MSPOTERDOWN/MSPOINTERUP几乎相同.也许是C#中的Simlar?这个 link 帮助吗?
8 2024-04-26
编程技术问答社区
如何通过事件处理程序传递发件人
我正在使用 http://wpfmdi.codeplex.com/库来处理我的mdi WPF应用程序. 我有一个帆布,其中包含一个子容器,进而包含许多小窗户.我想在关闭一个小窗户时执行操作,因此我尝试执行以下操作: MdiChild child = new MdiChild(); child.Closing += new RoutedEventHandler(DatabaseTableWindow_Closing); private void DatabaseTableWindow_Closing(object sender, RoutedEventArgs e) { object s = e.Source; } 当窗口关闭时成功输入该方法时,e.Source为null.我还检查了sender,这也是无效的.我想要的是一种找出事件开火的窗口的方法. 解决方案 如果sender是null,那么您正在使用的M
10 2024-04-26
编程技术问答社区
Webbrowser 控件 document_completed 多次发生火灾
document_complete的事件多次发射.这还不是那么糟糕.但是我要导航的URL永远不会完全加载.它被解雇了2/3次. 这是我的document_completed事件: private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != this.wbrowser.Url.AbsolutePath) return; else string doctext = this.wbrowser.DocumentText; } 我在做什么错? 解决方案 您将获得一个DocumentCompleted每个框架/iframe的事件,这就是为什么有几个事件.如果您没有得到最后一个,那是因为某些资源仍在加载或悬挂.它可能是图像,脚本文件或一些i
8 2024-04-26
编程技术问答社区
在事件被触发之前,我如何确定DataGrid是否已经被排序或分页?
我有一个 SortCommand and 这些事件将在page_load之后很好地发射,但是我想在page_load上知道它们是否要触发. 解决方案 Request.Form["__EVENTTARGET"]和Request.Form["__EVENTARGUMENT"]将给出引起帖子和事件参数的对象.如果数据网格不会导致寄回,则帖子中的某个地方可能有一个值.使用Fiddler单击按钮时要查看要发送的请求.
12 2024-04-26
编程技术问答社区
列表框事件的发射很奇怪
我很困惑.我基本上是在试图告诉用户何时在列表框中单击某些内容,保留了按钮,然后离开列表框.这是我正在做的事情有些愚蠢的版本: private bool itemHeld; private void listOriginal_MouseDown(object sender, MouseEventArgs e) { itemHeld = true; } private void listOriginal_MouseUp(object sender, MouseEventArgs e) { itemHeld = false; } private void listOriginal_MouseLeave(object sender, EventArgs e) { if (itemHeld) MessageBox.Show("OHH YEAH");
8 2024-04-26
编程技术问答社区
Windows Phone 8用户控件的VisibleChanged事件在哪里?
我在MSDN页面上发现了多个引用visiblechanged事件,该事件指出它是Windows Phone 8平台的.但是,当我尝试通过IntelliSense访问它正在构建的顶级用户控件(使用"此关键字),或者对于Layoutroot Grid,我看不到它.我通过对象浏览器进行了完整的搜索,但我也看不到任何东西.它在哪里?当用户控件可见时,我需要执行某些任务 ,并且我需要在不见时停止. 在http://msdn.microsoft.com/en-us/library/system.windows.forms.control.visiblechanged(V=VS.110).aspx 解决方案 您的参考是指Windows的Windows应用程序,而不是Windows Phone.您在Windows Phone上询问的属性是Visibility(不是Visible),因此您应该寻找VisibilityChanged - 但这不存在. 但是,您可以通过将想要的事件的控件进行子
14 2024-04-26
编程技术问答社区
在哪些情况下,使用事件而不使用委托变量来支持它是有好处的?
我正在阅读 jon Skeet的这篇文章是我寻求的一部分对代表和事件的深刻理解. 在文章中,他演示了一个不受代表变量支持的事件,并指出... ...有时您不想 返回一个简单代表的活动 多变的.例如,在情况下 有很多事件,但是 只有少数可能被订阅 到,您可以从某个钥匙中获得地图 将事件描述给代表 目前正在处理它.这是什么 Windows表格确实 - 这意味着您 可以有很多事件 没有浪费很多记忆 变量通常只有 零值. 我不完全理解他在说什么.有人可以充实例子吗?例如,他通过"从描述事件到当前处理该事件的某个密钥的地图"来完成的意思是什么? Windows表格如何做? 谢谢! 解决方案 您可以自己使用相同的类型 - 所以您可能有类似的东西: // Actual values don't matter; they're just keys private const string FirstEventKey = "FirstEvent"; private c
10 2024-04-26
编程技术问答社区
如何摆脱事件发射的锅炉板代码?
我正在开发一个由事件驱动并运行mulit线程的应用程序,因此我有很多事件被解雇并"以保存方式"发射它们,我以下方式执行此操作: public static void OnEVENT(EventArgs args) { var theEvent = EVENT; if (theEvent != null) theEvent(this, args); } 我的应用程序多次重复此模式. 是否有一种方法可以摆脱这种模式的重复并以通用的方式进行植入? 解决方案 我创建了一个包含多个扩展名的辅助类,因此我根本不需要OnEVENT方法,可以简单地调用EVENT.Raise(this, args);: using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics.CodeAnalysi
10 2024-04-26
编程技术问答社区
Sevenzip的压缩事件没有启动
我有一个Winform应用程序使用Sewenzip.dll并实现其能力以压缩提取文件和目录. 我的问题是,我想使用Sevenzip.com类的压缩事件,以跟踪压缩进度并使用进度键显示. 问题是,事件永远不会发射(在调试模式下检查),而所有其他事件都在起作用,例如压缩事件. 我发现其他开发人员遇到了同样的问题,但没有人提供答案. 注意:DLL的提取器类也可以按预期工作,所有事件都在触发,包括提取器.提取事件. 关于如何克服该问题的任何帮助将得到解决. 这是我使用的一些代码: SevenZipCompressor compressor = new SevenZipCompressor(); // NOT FIRING compressor.Compressing += new EventHandler(compressor_Compressing); // Firing as
6 2024-04-26
编程技术问答社区
BindingList ListChanged事件在填满数据之前不启动?
我正在编写代码,最终使用数据指标将数据从远程数据库中将数据提取到datagridview中.我目前正在创建与CSV文件一起使用的代码,而BindingList作为测试. 我希望在我的表单上显示一个显示数据库上次更新的显示.我目前正在使用BindingList上的ListChanged事件来更新"最后数据库更新"显示. 当数据库最初填充之后,列表截图的事件似乎仅在挂钩.这是我的课程中的一些代码扩展了datagridView: BindingList Data = new BindingList; public void InitGrid() { // Data.ListChanged += Data_ListChanged; // Event never fires if this is here! Data = CsvTest.ParseCsv("test.csv"); Data.ListChanged +
8 2024-04-26
编程技术问答社区