【c# – 我应该何时在事件聚合器上使用事件处理程序?】教程文章相关的互联网学习教程文章

防止C#事件到VB6代码创建死锁【代码】

我创建了一个多线程C#COM-Assembly,我在VB6中使用它. C#-COM可以从多个线程激发事件,我创建了一个不可见的From-object,并在引发之前使用它来同步所有事件.if (myForm.InvokeRequired() ) {delOnMessage myDelegate = new delOnMessage(Message_received);myForm.Invoke(myDelegate, new object[] { null, null }); } else {RaiseMyEvent(); }但是,如果VB6-Code位于事件处理程序内并调用COM-Object的某些方法,则会产生新事件.Privat...

c# – EventTrigger从DataContext绑定到事件【代码】

我正在努力完成这样的事情:<DataTemplate.Triggers><EventTrigger RoutedEvent="{Binding MyEvent}"><BeginStoryboard Storyboard="{StaticResource MyAnimation}" /></EventTrigger> </DataTemplate.Triggers>MyEvent是来自我的DataContext的事件. 这不起作用,因为RoutedEvent不能是Binding表达式.知道怎么做到这一点?事实上,我需要一些EventTrigger和DataTrigger的混合…… Blend SDK的解决方案:<Interactivity:Interaction.T...

c# – Lambda事件处理程序范围【代码】

有人能给我一个雄辩,深入的解释,为什么这样可以:EventHandler e;private void foobar(){e = new EventHandler((o, s) => {somectl.LayoutUpdated -= e;}somectl.LayoutUpdated += e; }但这不是:private void foobar(){EventHandler e = new EventHandler((o, s) => {somectl.LayoutUpdated -= e;}somectl.LayoutUpdated += e; }这也不是:private void foobar(){EventHandler e;e = new EventHandler((o, s) => {somectl.LayoutU...

c# – Firebird在.NET中发送所有事件【代码】

是否正常的firebird服务器在提出任何注册事件时发送所有已注册的事件计数? 以firebirds网站为例,我这样做:class FirebirdListenerTest {public FirebirdListenerTest(){try{FbConnectionStringBuilder cs = new FbConnectionStringBuilder();cs.DataSource = "localhost";cs.Database = "C:\\FIREBIRD\\TEST.GDB";cs.UserID = "SYSDBA";cs.Password = "masterkey";cs.Charset = "NONE";FbConnection connection = new FbConnecti...

c# – 如何处理实现IDisposable的类中的委托/事件引用【代码】

我一直在阅读关于内存管理的内容,并且在一个项目中遇到过这样的情况,在这个项目中,Google和Google都没有提出确切的答案.我已经知道委托是管理对象,事件是委托实例.话虽如此,一旦应用程序结束,代理实例将从内存中删除. 我无法弄清楚的是如何确保外部代码在我的类处理时(显式地或通过GC)释放所有事件引用.例如,A类公开一个事件而B类使用它. B类在A类上调用Dispose而不释放对代理的引用.当然,我们不能从Dispose方法本身抛出错误. 以下...

c# – 如何使用事件数组处理传入的命令?【代码】

我目前正在研究一种简单的客户端/服务器模型,它在TCP数据包(如HTTP)中发送数据包,命令基本上是整数(每个数据包的前4个字节),我想找出一种有效的方法.处理这些命令. 最明显的答案是编写成千上万的if或者用千个案例做一个巨大的switch语句,但是没有更好的方法吗? 我想创建一个事件数组,然后只提高相应的索引,以便每个int引用一个被命名的事件(例如MessageReceived).我也想节省时间,所以我怎么能解决这个问题呢? 编辑:服务器处理多...

c# – 如何在ASP.Net中对事件进行单元测试?【代码】

我用自定义事件参数和相关的提升方法定义了两个事件.现在我想知道该事件的测试内容和方式.我应该如何分析代码以找到单元测试的候选者?解决方法:我测试事件的方式如下: 假设这是你的对象:public class MyEventRaiser {public event EventHandler<string> MyEvent = delegate { };public void Process(string data){// do something interestuingThread.Sleep(2000);if (!string.IsNullOrEmpty(data)){this.MyEvent(this, data + ...

c# – 创建一个处理多种事件类型的事件处理程序【代码】

我今天查看了一些旧代码,发现了一个如下所示的事件处理程序:public void HandleEvent(EventClassA eventObj) {if(eventObj is EventSubClassA){HandleEventSubClassA(eventObj as EventSubClassA);}else if(eventObj is EventSubClassB){HandleEventSubClassB(eventObj as EventSubClassB);}else if(eventObj.GetType() == typeof(EventSubClassC)){HandleEventSubClassC(eventObj as EventSubClassC);}else if(eventObj is Event...

c# – 处理按钮外的点击事件【代码】

我正在尝试通过复制Apple AppStore中的应用程序来练习c#. 在应用程序中,有一个带有文本的矩形:“触摸我”.当您触摸它时,矩形会重新定位. 在您执行此操作几次后,文本将更改为“请勿触摸我”.在这种情况下,您必须触摸矩形外部. 一切顺利,直到你必须触摸矩形外面. 这是我的事件处理程序:private void Canvas_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e){if (click == 0){if (rectangle1.IsMouseOver || textBloc...

c# – 尝试使方法等待内部事件处理完成【代码】

我是C#async / await的新手,在尝试使用异步方法时遇到了一些问题.我有一个集合:private IList<IContactInfo> _contactInfoList和异步方法:public async Task<IList<IContactInfo>> SelectContacts() {_contactInfoList = new List<IContactInfo>();ContactsSelector selector = new ContactsSelector();selector.ShowPicker();selector.ContactsSelected += (object sender, ContactsSelectorEventArgs e) =>{this._contactInfoL...

C#从控件列表中提升事件【代码】

警告:嵌入式软件delevoper尝试构建PC软件! 我正在尝试连接一块通过串行接口与PC通信的硬件. PC软件(C#)会定期发送一个字节数组,我想用一些跟踪条进行调整. 我没有在设计视图中添加8个轨道栏,而是添加一个以帮助我对齐它,然后创建一个List,我在加载时填充如下:public partial class FormDmxTemplate : Form {// Controls// Create a list of tracbars.List<TrackBar> trackBarDmx = new List<TrackBar>();public FormDmxTemplate...

c# – 如何以编程方式打开上下文菜单时引发ContextMenuOpening事件【代码】

当我打开带有< control> .ContextMenu.IsOpen = true的上下文菜单时,上下文菜单变为可见,但是没有触发打开或关闭事件. 当我以编程方式打开上下文菜单时,如何确保引发ContextMenuOpening和ContextMenuClosing事件? 演示: 查看以下XAML<Button Name="ContextMenuButton" Content="Click me!" Click="ContextMenuButton_Click" ContextMenuOpening="ContextMenuButton_OnContextMenuOpening"ContextMenuClosing="ContextMenuButton_...

c# – 单击子元素时如何阻止父元素的事件【代码】

例如,当我单击按钮时也会启动网格事件.我怎么能避免呢?<Grid Tap="Grid_Tap"><Button Click="btn_Click" /> </Grid>解决方法:设置e.Handled = true;在按钮的处理程序中void Button_Click_1(object sender, RoutedEventArgs e){//Handler code heree.Handled = true;}Handled

c# – 使用ScrollViewer.ScrollToEnd()进行AutoScroll只能在调试时使用,事件处理程序太简单了【代码】

查看this solution以获得更好的自动滚动功能我认为自己非常聪明地找到一个更简单的解决方案,但它只适用于调试会话:private void scrollviewer_Messages_ScrollChanged(object sender, ScrollChangedEventArgs e){ScrollViewer sv = sender as ScrollViewer;if (sv.VerticalOffset == sv.ScrollableHeight){sv.ScrollToEnd();//debug breakpoint}return;}在向此ScrollViewer中的文本块添加内容时,自动滚动工作,文本的底部保持在视图...

c# – 使控件透明,以便在拖放过程中拖动事件

我有一个ListView,作为拖放操作的放置目标.当列表为空时,我在其上面放置一个TextBlock,并显示一条消息,通知用户他们可以在那里拖动东西(两个控件都包含在一个Grid单元格中以启用重叠).但是……由于TextBlock位于ListView的顶部,它拦截了与拖放相关的各种事件,并防止事物被丢弃到消息文本本身. 我真的不想在TextBlock中添加一个drop处理程序 – 有什么方法可以简单地让它“拖放”拖放操作吗? 在写这个有效的时候我刚刚想到的东西就...

聚合 - 相关标签