【C#-反射:在运行时将事件字段与委托类型的字段区分开】教程文章相关的互联网学习教程文章

调用委托和事件C#的区别【代码】

有什么不同? 使用委托public delegate void TestDelegate(); public TestDelegate delObj = SomeMethod;public void SomeMethod() {..... }public void Test() {if(delObj != null)delObj(); }使用事件public delegate void TestDelegate(); public event TestDelegate EdelObj += SomeMethod;public void SomeMethod() {..... }public void Test() {if(EdelObj != null)EdelObj(); }两者似乎都有效.任何人都可以解释有什么区别,我...

c# – 隐藏在继承类中的事件不起作用【代码】

我试图隐藏继承类中的事件,但不是通过EditorBrowserable属性.我有一个DelayedFileSystemWatcher,它继承自FileSystemWatcher,我需要隐藏Changed,Created,Deleted和Renamed事件并将它们设为私有.我试过这个,但它不起作用:/// <summary>/// Do not use/// </summary>private new event FileSystemEventHandler Changed;IntelliSense中未显示XML注释(显示原始信息).但是,如果我将访问修饰符更改为public,则XML注释将显示在IntelliSens...

c# – 取消订阅订阅者的.NET事件【代码】

我被问到一个关于事件的非常有趣的问题.我认为答案是肯定的,但我很好奇是否有一种我不知道的方式. 在下一个代码示例中,我可以从引用类B或其方法X中删除订阅吗?Class1 A = new Class1(); Class2 B = new Class2();A.DoneIt += B.X;意思是做A.DoneIt – = B.X;无法访问A类(也不能通过A类反思).解决方法:不,您只能取消订阅才能访问该活动. 代表们指出了一种方法,即一种方法.该方法没有指向事件的指针.因此,对取消订阅的事件的唯一访...

c#中的observablecollection的CollectionChanged事件【代码】

如何更好地编写此代码:void CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) {if (sender is ObservableCollection<PromotionPurchaseAmount>){if (e.Action == NotifyCollectionChangedAction.Remove){foreach (PromotionPurchaseAmount item in e.NewItems){//Removed itemsitem.PropertyChanged -= EntityViewModelPropertyChanged;}}else if (e.Action == NotifyColle...

c# – 从事件处理程序访问GUI【代码】

当收到串口的字节时,它会正确进入该处理程序,但GUI上的标签不会改变.编辑:是的,它与GUI在同一个类中编辑2函数声明不需要是“静态的”…我只是从msdn复制粘贴an example编辑3它在摆脱静态去除并使用像this这样的东西后起作用.谢谢你的帮助private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e){Form1 gui = new Form1(); //main GUItry{SerialPort sp = (SerialPort)sender;string indata = sp....

c# – 事件优先级和流程订单【代码】

有没有办法指定处理已注册事件代表的顺序或优先级?例如,我有一个事件,我想在任何其他事件之前立即处理,但我希望允许其他对象注册该事件的监听器.如何实现这一目标? 让我们说proc1总是在proc 2之前运行.class MessageProcessor {private DataClient Client;public MessageProcesser(DataClient dc){Client = dc;Client.MessageReceived += ProcessMessage;}void proc1(MessageEventArgs e){// Process Message}}class DataClient ...

c# – WPF DataGrid CellEditEnded事件【代码】

我希望每次用户编辑DataGrid单元格的内容时都知道.有CellEditEnding事件,但是在对DataGrid绑定的集合进行任何更改之前调用它. 我的datagrid绑定到ObservableCollection< Item>,其中Item是一个类,由WCF mex端点自动生成. 每次用户提交更改集合时,最好的方法是什么. UPDATE 我已经尝试过CollectionChanged事件,当Item被修改时它不会被触发.解决方法:您可以使用UpdateSourceTrigger = PropertyChangedon绑定数据网格的属性成员.这将确...

c# – 按键向下仅允许WPF文本框中的一个字符事件【代码】

我有一个文本框,当输入密钥是“返回”时有keydown事件我有一个条形码阅读器,它读取文本但它不是写一个以上的密钥,即只写了一个字母让我们说“a”,如果我写第二个字母“a”被覆盖成“b”但不会变成“ab”.有谁知道这是什么原因?private void barcodetexbox_KeyDown(object sender, KeyEventArgs e) {if (scannedString.Text != "" && e.Key==Key.Return){//do something} }在“MainWindow.xaml”中<TextBox x:Name="scannedString"...

c# – Click事件上的GridView列标题【代码】

在WPF中,如何在单击GridView(在ListView中)列标题时触发事件?解决方法:只需使用ListView中的GridViewColumnHeader.Click事件:<ListView GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">

c# – 我是否在运行时使用Paint事件来定位控件?【代码】

我是来自VB6的C#编程的新手,所以请温柔:P 我一直在使用Panel来分组控件(即Panel包含Textbox,Labels,Listview等),然后让面板在运行时对齐,以便控件以不同的分辨率对齐.但是,我是通过Panel的Paint例程(?)来做到这一点的. 即:private void pnlTop_Paint(object sender, PaintEventArgs e){btnExit.Location = new Point(this.Width - (this.Left + lblTitleMain.Left + btnExit.Width), 10);btnMinimize.Location ...

c# – 如何跨不同类发布和订阅事件【代码】

目标:在udp或tcp使用其send方法时更改表单上的图像 问题:我不知道如何正确设置事件,事件处理程序和委托 发送接口interface ISendData {void Send(); }Tcp Connection类//Need some type of delegate??public class TCPconnection : ISendData {void Send(){//how invoke/fire a send Event?} }UDP连接类//Need some type of delegate??public class UDPConnection : ISendData {void Send(){//how invoke/fire a send event?} }‘...

c# – WPF渲染事件没有绘制任何东西【代码】

我正在尝试将一些WinForm代码转换为WPF用于管网绘图应用程序.我一直在这个油漆应用文章的基础上: http://www.codeproject.com/Articles/22776/WPF-DrawTools 这就是我在WinForms中所拥有的,我正在尝试将其转换为因为我们需要更多可自定义的窗口.我需要做以下事情: a)单击画布以绘制节点b)单击并拖动上述节点c)将鼠标悬停在高亮显示的节点上d)用链接连接节点 我有以下代码在画布上绘制一个矩形,但在渲染渲染时画布上不会出现任何内...

c# – 在另一个用户控件中消耗一个用户控件的自定义事件?【代码】

在UserControl1中有一个自定义事件,我想在UserControl2中连接. 在UserControl1中,我已将自定义事件声明为:public event MYDelegate SendMessage;而我的委托定义在其他类库中:public delegate string MYDelegate(string message);我在我的代码中触发SendMessage如下:SendMessage(txt.Text);请指导我如何在UserControl2中连接SendMessage()事件.我的想法是做类似下面的例子,但不知道如何在UserControl2中获取/访问UserControl1对象...

c# – UpdatePanel触发错误.无法在UpdatePanel中的触发器的关联控件上找到事件【代码】

我遇到了asp:UpdatePanel和ASP.NET WebForms的触发器.触发器无法在我的UpdatePanel上找到该事件.我已经看过很多例子,我复制了他们的实现,但是无法正确实现.我是WebForms的新手.请帮忙.谢谢.<tr><td class="label1">Will use ETL?</td><td><asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel1"><ContentTemplate><asp:RadioButtonList ID="useEtl" runat="server" RepeatDirection="Horizontal" Width="12...

C#中MS Word的加载项TextChange事件【代码】

我有一个Microsoft Word加载项,可以在文本中找到相似的单词(但是当我单击一个按钮时!) 我的问题是:如何在用户输入单词时调用函数? 换句话说,当用户键入以获取当前单词并处理它并获得类似单词时,我想要一个类似“TextChange”或“Keypress”的事件. 有些事情像这样:private void TextChangeEventOfCurrentActiveDocument(object sender, System.EventArgs e) {... }任何其他想法,我可以得到用户输入的新单词? 谢谢.解决方法:最...