Tag: 事件处理

获取DataGridView CurrentCellChanged事件中的当前单元格列索引

我有DataGridView的CurrentCellChanged事件处理程序,我希望能够从事件处理程序访问当前选定的单元格列索引。 我以前在CellClick处理程序中有代码,其中DataGridViewCellEventArgs作为参数,所以我能够从事件args参数中获取列索引,但是CurrentCellChanged事件将EventArgs作为参数,我相信这应该暗示没有数据为这个事件。 有没有办法访问新的当前选定的单元格列索引?

如何访问控件的事件?

我试图得到分配给控制的事件的名称例如:我有两个formsA和B. 表单B包含GridControl ,gridcontrol有一些事件,如gridControl1_Validating。 我的目标只是知道分配给控件的事件是什么 我的守则如下FOrm A. public Control[] FilterControls(Control start, Func isMatch) { var matches = new List(); Action filter = null; (filter = new Action(c => { if (isMatch(c)) matches.Add(c); foreach (Control c2 in c.Controls) filter(c2); }))(start); return matches.ToArray(); } static void main[] { Control[] FoundControls = null; FoundControls = FilterControls(TF, c => c.Name […]

为PictureBox鼠标添加事件

我想让这个活动奏效: private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { //code } 我知道我必须为此添加一个事件,但我无法在任何地方找到语法。 我该如何添加此活动?

阻止代码并等待事件处理程序触发?

我正在编写一个使用第三方库来处理某些数据的应用程序。 在一个非常简单的例子中,我有一个像这样的任务运行的方法: private void ProcessListOfItems(List items) { while (items.Count > 0) { 3rdPartyLibObject.Process(items[0]); items.Remove(0); } } 正如您所看到的,我的代码当前编写的方式,我会在Process()方法返回后立即从列表中删除每个项目。 但是项目的处理可能会失败,我需要知道是否会发生这种情况。 不幸的是,Process()方法不返回bool值来指示项目是否已成功处理,而是会触发ProcessingComplete和ProcessingFailed事件。 我有事件处理程序连接到这样的事件: 3rdPartyLibObject.ProcessingComplete += obj_ProcessingSuccess; 3rdPartyLibObject.ProcessingFailed += obj_ProcessingFailed; private void obj_ProcessingSuccess(object sender, 3rdPartyLibObject.ProcessingEventArgs e) { this.Invoke(new ProcessedHandler(OnProcessed), new object[] { true }); } private void obj_ProcessingFailed(object sender, 3rdPartyLibObject.ProcessingEventArgs e) { this.Invoke(new ProcessedHandler(OnProcessed), new object[] { false }); […]

将自己的参数发送给事件处理程序?

我正在使用AssemblyResolve。 这是我的代码,然后我的问题如下: var a = AppDomain.CurrentDomain; a.AssemblyResolve += new ResolveEventHandler(HandleIt); Private Assembly HandleIt(object sender, ResolveEventArgs args){ //Does stuff, returns an assembly } 所以我将HandleIt添加到我的AssemblyResolve事件中。 我如何将它添加到该事件并传递一个参数,如: a.AssemblyResolve += new ResolveEventHandler(HandleIt(AnArgument)); 这是因为HandleIt接受参数后抛弃了我,但是当它被添加到AssemblyResolve事件时,没有一个被明确地传递。 我希望有类似的东西: a.AssemblyResolve += new ResolveEventHandler(HandleIt(aSender,someArgs)); 所以是的,我只是希望能够在将其添加到我的AssemblyResolve事件时向HandleIt函数发送另一个参数。 希望有意义,谢谢。 附录: if(aBool){ a.AssemblyResolve += new ResolveEventHandler(HandleA); } else{ a.AssemblyResolve += new ResolveEventHandler(HandleB); } HandleA(object sender, ResolveEventArgs args){ Handle(true); } […]

按下“Ctrl + C”按钮处理C#控制台应用程序

如何处理同时按下的两个按钮(’Ctrl’+’C’),而不是在WindowsForms应用程序中,而是在控制台C#应用程序中?

设计帮助 – 多态事件处理

设计问题 – 多态事件处理 我目前正在尝试减少当前项目中的事件句柄数量。 我们有多个通过USB发送数据的系统。 我目前有一个例程来读取消息并解析初始标头详细信息以确定消息来自哪个系统。 标题有点不同,所以我创建的EventArgs不一样。 然后我通知所有“观察员”这一变化。 所以我现在所拥有的是以下内容: public enum Sub1Enums : byte { ID1 = 0x01, ID2 = 0x02 } public enum Sub2Enums : ushort { ID1 = 0xFFFE, ID2 = 0xFFFF } public class MyEvent1Args { public Sub1Enums MessageID; public byte[] Data; public MyEvent1Args(Sub1Enums sub1Enum, byte[] data) { MessageID = sub1Enum; Data […]

C#:使用虚拟对象初始化事件处理程序

我在某些地方看到过这种代码: public event SomeEventHandler SomeEvent = (s, e) => { }; 这是一种推荐的做事方式吗? 它解决了什么,是否有任何值得注意的副作用? 我还需要做空检查吗? 或者这正是我不必再做什么了? 垃圾收集仍然可以正常工作吗? 例如: private PropertyChangedEventHandler propertyChanged; private readonly object propertyChangedLock = new object(); public event PropertyChangedEventHandler PropertyChanged { add { lock (propertyChangedLock) propertyChanged += value; } remove { lock (propertyChanged) propertyChanged -= value; } } protected void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler […]

如何删除所有eventhandler

让我们说我们有一个代表 public delegate void MyEventHandler(string x); 和一个事件处理程序 public event MyEventHandler Something; 我们添加了多个事件.. for(int x = 0; x <10; x++) { this.Something += HandleSomething; } 我的问题是..如何从事件处理程序中删除所有方法,假设一个人不知道它已被添加10次(或更多或更少)次?

在ASP.NET中向父级冒泡事件

我在ASP.NET中说过这个层次结构: page user control 1 user control 2 control 3 我想要做的是,当控件3(它可以是任何类型的控件,我想一般地执行此操作)让用户做一些触发回发的事情,它会将某些事件冒泡到用户控件2 ,或者甚至可能是用户控制1(虽然我也可以让UC 2手动鼓泡事件)。 同样,我想要通常这样做,以便层次结构可以改变,它仍然有效。 也许有多个控件(控件4等)或数据绑定控件。 这可能吗? 谢谢。