【c# – 如何跨不同类发布和订阅事件】教程文章相关的互联网学习教程文章

c# – 对不同的控件使用与事件相同的功能是不是一个坏主意?【代码】

一个例子:private void ListViewGeneric_DragEnter(object sender, DragEventArgs e) {e.Effect = DragDropEffects.Move; }并将此函数指定为ListView1,ListView2,ListView3的事件函数:this.ListView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.ListViewGeneric_DragEnter) this.ListView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.ListViewGeneric_DragEnter) this.ListView3.DragEnte...

C#中的事件是否结构化?【代码】

所以我有一个EventHandlers的字典,但我发现当我在将keyvaluepair添加到字典之前附加到一个事件时,一切正常.但是,如果我添加keyvaluepair然后更新eventhandler的值,则字典不会更新.public static event EventHandler TestEvent; private static Dictionary<int, EventHandler> EventMapping = new Dictionary<int, EventHandler>();//TestEvent += GTKWavePipeClient_TestEvent;EventMapping.Add(0, TestEvent);TestEvent += GTKWav...

c# – 为什么使用`Checked`属性会导致奇怪的错误,事件只能发生在=或 – =的右边?【代码】

我正在使用WPF应用程序上的c#.我编写了以下代码public partial class MainWindow : Window {public MainWindow(){RadioButton daw;InitializeComponent();if (qoneone.Checked == true){MessageBox.Show("Correct");}}出现错误event qoneone.Checked can only appear on left hand side of += or -=解决方法:您正在访问qoneone的错误成员. 相反,你必须检查布尔属性qoneone.IsChecked == true. IsChecked是一个属性,您可以读取或写入...

c# – 如何从DragDrop事件中定位datagridview行或单元格?【代码】

void dataGridView1_DragDrop(object sender, DragEventArgs e){object data = e.Data.GetData(typeof(string));MessageBox.Show(e.X + " " + e.Y + " " + dataGridView1.HitTest(e.X, e.Y).RowIndex.ToString());if (dataGridView1.HitTest(e.X, e.Y).Type == DataGridViewHitTestType.Cell){MessageBox.Show("!");}}如果我尝试使用上面的测试代码将项目拖动到datagridview,我会从data.ToString()中收到正确的数据,但我无法定位行...

c# – 如何以编程方式将事件处理程序添加到.NET按钮?【代码】

我正在尝试使用我在开发Web应用程序时可以考虑的最强大的OOP,但是在使用代码创建事件处理程序时,我遇到了问题.我确信这是一个相当简单的解决方案,我不断放弃,但我不知道下一步该尝试什么.下面是我一直在玩的一些测试代码,只是想按下按钮去做一些事情. (想象一下,“int i”这一行有一个断点)Button b = new Button();b.Text = "Do Something";b.Attributes.Add("runat", "server");b.Attributes.Add("OnClick", "click");form1.Cont...

c# – 在不触发SelectionChanged事件的情况下设置Combobox的选定值【代码】

我有一个ComboBox:<ComboBox Name="drpRoute" SelectionChanged="drpRoute_SelectionChanged" />我在代码隐藏文件中设置列表项:public ClientReports() {InitializeComponent();drpRoute.AddSelect(...listofcomboxitemshere....) }public static class ControlHelpers {public static ComboBox AddSelect(this ComboBox comboBox, IList<ComboBoxItem> source){source.Insert(0, new ComboBoxItem { Content = " - select - "})...

C# 中的委托和事件

引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里憋得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了...

c# – 锚点标签的OnClick事件【代码】

是否有锚标签的onClick事件?我有以下代码行:<li><a href="#" runat="server">Logout</a></li>当用户单击注销文本时,我希望它触发一些代码,这些代码将在以下方法中:protected void btnLogout_Click(object sender, EventArgs e) {Session.RemoveAll();Session.Abandon(); }在锚标记中执行此操作的最佳做??法是什么?解决方法:而不是标准的html锚标签,请使用LinkButton.它提供了您正在寻找的功能. 这里有一个样本<asp:LinkButton ...

c# – 用户关闭浏览器时的“Logging out”事件【代码】

我有一个名为Eventlog的表,该表包含有关用户连接的数据:当用户调用此操作时,例如:public ActionResult Login(string username, string password) {}>我测试用户是否已经存在于数据库中>如果是,我使用Session [“user”] =用户名或FormsAuthentication.SetAuthCookie(username,true);设置用户会议>然后我在Eventlog表上放了一条记录:用户X在Y点连接 这工作正常,但我也想要有关用户注销的信息.我可以对LogOff Action做类似的事情,...

c# – DDD,事件存储,UI

我有一个项目,其设计或至少应根据众所周知的DDD原则. >返回 – DDD CQRS事件存储> UI – ngrx / store 我有很多问题要问,但现在我会坚持这两个: >在执行单个命令/操作后,如何更新UI存储? a)订阅response.ok b)听域名活动 c)触发持有创建/更新/删除对象的通用事件? >在每个命令/事件中将整个聚合根dto与其所有实体一起传输是一个好主意,还是更好的是为了获得更细粒度的命令/事件:只有一个属性?解决方法:How should the UI s...

C#中事件处理的首选方法是什么?【代码】

哪个是在.NET中处理事件的首选/推荐方式:this.Load += new EventHandler(Form1_Load); private void Form1_Load(object sender, EventArgs e) { }要么protected override void onl oad(EventArgs e) {base.OnLoad(e); }每种方法的优缺点是什么?多年来我一直使用这两种方法,并且通常更倾向于第一种方法,因为这是Visual Studio自动创建的用于处理事件的方法.我错过的第二种方法有什么好处吗?解决方法:第一种方式是微软建议的.模式...

是否有更简洁的方法在C#3和C#4中定义自定义事件?【代码】

在以下控制台应用程序示例中,事件定义如下:public delegate void PurchaseHandler(object obj, PurchaseArgs args); public event PurchaseHandler OnPurchaseMade;在看完之后我觉得这可能有点“C#2”. 是否有更简洁的方式来表达C#3和C#4?using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace TestEvents288202 {class Program{static void Main(string[] args){Product product1 =...

在C#中从父窗体的子窗体中为控件添加事件处理程序【代码】

我有两种形式.一个是带有按钮和文本框的父表单.单击该按钮时,会打开一个对话框,打开子窗体,该子窗体又具有文本框和按钮.现在我想要的是,当子窗体文本框中的文本更改时,父窗体文本框中的文本会自动更改.为了获得这个,我所做的是,Form3 f3 = new Form3(); f3.delBetInpTxt.TextChanged +=new EventHandler(delBetInpTxt_TextChanged); public void delBetInpTxt_TextChanged(object sender, EventArgs e){TextBox t = (TextBox)sende...

c# – 为什么我们不能在Page_Unload事件上使用Response.Write?【代码】

我在Page_Unload事件上使用Respose.Write,然后我收到错误Response is not available in this context.我可以知道为什么我们不能使用?protected void Page_Unload(object sender, System.EventArgs e) {Response.Write(" hi "); }解决方法:这是因为在呈现页面后触发了Unload事件.页面已经完成,在前往浏览器的路上,不再有可以写入的响应流.

c# – 如何在不收听框架控件中定义的任何鼠标事件的情况下检测鼠标点击?【代码】

是否可以在不收听框架控件中定义的任何鼠标事件的情况下检测鼠标点击? 我的意思是,我不想写代码如下:control.MouseLeftButtonDown += this.HandleMouseLeftButtonDown;但我想知道用户是否点击了屏幕.是否有可能在C#(WPF或Silverlight)?解决方法:您可以在主窗口的静态构造函数中注册类处理程序,例如:static MainWindow() {EventManager.RegisterClassHandler(typeof (MainWindow),Mouse.MouseDownEvent,new MouseButtonEventHan...