Tag: 事件

在3个单独的WinForms之间传递数据

在C#WinForms领域的整个编码过程中,我遇到过许多实例,在这些实例中我遇到了在表单之间传递数据的不同方法。 我在一个大型代码库上工作 – 其中一些方法是由其他人编写的,我后来扩展了,其他的都是我自己编写的。 似乎有两个主要的范例,我编写的这两个范例相当舒服。 1.)在实例化或显示子表单时,将父表单传递给子表单。 例如: ChildForm.Instance = new ChildForm(this); –Or– ChildForm.Instance = new ChildForm(); ChildForm.Instance.Show(this.TopLevelControl); 这允许孩子从父母那里提取信息,并允许父母调用孩子的方法。 忍受我一会儿 – 我确实意识到这打破了这么多范例,并且是“糟糕”的做法 – 记住,我在维护更大的代码库时遇到了大部分问题,我需要对其进行增量调整没有做完整的重构。 2.)使用事件委托允许在父表单和子表单之间传输数据。 据我所知,这仍然需要父表单在产生孩子时建立此事件。 例如: 在父母内: childForm = new ChildForm(this); DataRead += new DataReadEventHandler(childForm.ChildForm_DataRead); 在孩子内: public void ChildForm_DataRead(Data data) { if (InvokeRequired) { Invoke(new MethodInvoker(delegate() { ChildForm_DataRead(data); })); } else //do something } 这种性质的东西。 […]

在C#中从不同的类中引发类的事件

我有一个类EventContainer.cs,它包含一个事件,比如说: public event EventHandler AfterSearch; 我有另一个类,EventRaiser.cs。 如何从这堂课中筹集(而不是处理)上述事件? 引发的事件将依次调用EventContainer类中的事件处理程序。 这样的事情(这显然不正确): EventContainer obj = new EventContainer(); RaiseEvent(obj.AfterSearch);

+ =带事件的运算符

public void Bar() { Foo foo = new Foo(); **foo.MyEvent += foo_MyEvent;** foo.FireEvent(); } void foo_MyEvent(object sender, EventArgs e) { ((Foo)sender).MyEvent -= foo_MyEvent; } 嘿,我对事件有点不熟悉,有人能告诉我+ =运算符对事件的影响吗?

如何动态创建5个按钮并分配单个单击事件?

我需要在Windows窗体上动态创建5个按钮,每个按钮都应该响应click事件。 我尝试了但是所有按钮都响应同一事件。

在WinForms表单之间传递数据

我在我的项目中创建了一个辅助表单,它可以从主表单中获取数据,并且在单击按钮时应该将一些表单传递给主表单。 这是代码: Add.cs: private void button1_Click(object sender, EventArgs e) { main ma = new main(); ma.optionType = “add”; ma.optionName = txtName.Text; ma.optionURL = txtURL.Text; ma.optionInterval = “12”; //What should I pass here? this.Close(); } main.cs: private string opt;// create a property public string optionType { get { return opt; } set { opt = value; […]

如何检查form2上的复选框时Form1 label.text更改?

我对c#很新,我正在用2种不同的forms尝试我的第一次实验。 我想这样做,所以你在Form1上有一个label1和一个button1,在Form2上有一个checkbox1。 Form1上的button1打开Form2,一旦您检查Form2上的checkbox1,label1中的文本将更改。 我认为这必须使用事件来完成,但事件是迄今为止唯一让我真正迷惑的事情,所以我想这个问题实质上更多的是关于事件的使用。 如果我在MSDN和其他网站上查找,我也会发现非常混乱。 非常感谢帮助,这让我觉得非常愚蠢。

C#:如何使用给定的事件ID查询事件日志详细信息?

如何知道是否记录了特定事件(给定事件ID,时间和节点作为输入)? [在这种情况下,我知道只会记录一个事件] 如果记录了该事件,我如何获取事件描述,日志名称等详细信息。 例如,我想查询节点应用程序和服务日志> Microsoft> Windows> groupPolicy> Operational下的事件,事件ID为5315,时间是当前时间。

我如何获得活动的订阅者?

我需要将一个事件的订阅者复制到另一个事件。 我可以获得一个事件的订阅者(比如MyEvent [0]返回一个委托)吗? 如果这不可能,我会使用add accessor将委托添加到列表中。 那会是最好的解决方案吗?

如何在C#中向UserControl添加事件?

我有一个包含3个标签的UserControl。 我想为它添加一个事件,当其中一个标签的文本发生变化时会发生这种事件。 我正在使用Visual Studio 2010

事件处理程序不是线程安全吗?

所以我已经阅读过,而不是直接调用事件 if (SomeEvent != null) SomeEvent(this, null); 我应该这样做 SomeEventHandler temp = SomeEvent; if (temp != null) temp(this, null); 为什么会这样? 第二个版本如何变得线程安全? 什么是最佳做法?