Tag: 事件处理

我是否使用正确的方法来监控创建句柄时要执行的任务?

是否有一个普遍接受的最佳实践来创建一个取消订阅自己的事件处理程序? 例如,我想出的第一件事就是: // Foo.cs // … Bar bar = new Bar(/* add’l req’d state */); EventHandler handler = new EventHandler(bar.HandlerMethod); bar.HandlerToUnsubscribe = handler; eventSource.EventName += handler; // … // Bar.cs class Bar { /* add’l req’d state */ // .ctor public EventHandler HandlerToUnsubscribe { get; set; } public void HandlerMethod(object sender, EventArgs args) { // […]

C#:String作为事件的参数?

我有一个用于表单的GUI线程和另一个计算事物的线程。 表单有一个richtTextBox。 我希望worker-thread将字符串传递给表单,以便每个字符串都显示在文本框中。 每次在工作线程中生成一个新字符串时,我都会调用一个事件,现在应该显示该字符串。 但我不知道如何传递字符串! 这是我到目前为止所尝试的: ///// Form1 private void btn_myClass_Click(object sender, EventArgs e) { myClass myObj = new myClass(); myObj.NewListEntry += myObj_NewListEntry; Thread thrmyClass = new Thread(new ThreadStart(myObj.ThreadMethod)); thrmyClass.Start(); } private void myObj_NewListEntry(Object objSender, EventArgs e) { this.BeginInvoke((MethodInvoker)delegate { // Here I want to add my string from the worker-thread to the textbox! richTextBox1.Text […]

C#知道设置了多少个EventHandler?

众所周知,我们可以创建一个EventHandler并向其添加N次方法。 喜欢: // Declare and EventHandler public event EventHandler InternetConnectionAvailableEvent; private void OnInternetConnectionAvailableEvent() { if (InternetConnectionAvailableEvent != null) { EventHandler handle = InternetConnectionAvailableEvent; EventArgs e = EventArgs.Empty; handle(this, e); } } // IN OTHER CLASS WHERE I USE THE EVENT // Set the method name to handle the event monitorInternet.InternetConnectionAvailableEvent += HandleInternetConnectionEvent; void HandleInternetConnectionEvent(object sender, […]

从C#中的另一个表单听主表格中的事件

我有一个具有主窗体的应用程序,并使用事件处理程序来处理传入的数据并反映主窗体上各种控件的更改。 这很好用。 我在应用程序中还有另一个表单。 在任何给定时间都可以运行第二种forms的多个实例。 我想要做的是让第二个表单的每个实例都监听主表单中的事件处理程序,并更新其第二个表单实例的控件。 我该怎么办? 这是一些示例代码。 我想从the_timer_Tick事件处理程序获取信息来更新SecondaryForm的每个实例。 public partial class Form1 : Form { Timer the_timer = new Timer(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { the_timer.Tick += new EventHandler(the_timer_Tick); the_timer.Interval = 2000; the_timer.Enabled = true; } void the_timer_Tick(object sender, EventArgs e) { // I would like code in […]

强制循环等待事件

我正在尝试编写一个遍历项目列表的方法 – 每个项目将其添加到表单中,然后等待用户输入一些数据并单击按钮。 但是我不知道我应该/可以使用什么来创建它。 foreach (string s in List) { txtName.Text = s; //wait for button click… // When the user is ready, they click the button to continue the loop. } 到目前为止,我发现的是EventWaitHandle类,它似乎只适用于线程。 我怎样才能做到这一点?

何时连接事件处理程序asp.net

假设我们有一个非常标准的forms,带有文本框和按钮(为简单起见)。 您想要处理Click事件并根据用户的输入执行一些操作。 我想知道,重要的是,当您在代码隐藏中为Click事件连接一个事件处理程序时? 如果是的话,放在哪里的最佳位置? 页面加载? 页面初始化? 我已经尝试了两个地方,但没有发现任何差异。 或者这只是程序员的个人偏好? 我已经在互联网上搜索了几次,但没有找到任何满意的答案。 我知道当实际方法执行时,只是不确定接线部分 。

获取事件的控件名称

在我的C#Windows窗体表单中,我有一些动态生成的按钮。 我在click事件上分配了以下方法。 是否可以获取触发事件的按钮的名称? private void btnBrowsDoc_Click(object sender, EventArgs e) { try { if (openFileDialog1.ShowDialog().Equals(DialogResult.OK)) { gbxDocument.Controls[“txtDocument” + count].Text = openFileDialog1.FileName; } else { return; } } catch (Exception ex) { //handle the exception } }

单击动态usercontrol中的控件时,单击事件未触发

我的usercontrols中有不同的控件。 并在我的表单中动态加载用户控件 UserControl2 usercontrol = new UserControl2(); usercontrol.Tag = i; usercontrol.Click += usercontrol_Click; flowLayoutPanel1.Controls.Add(usercontrol); private void usercontrol_Click(object sender, EventArgs e) { // handle event } 单击usercontrol中的控件时,不会触发单击事件。 它只在我点击usercontrol的空白区域时触发。

c#WPF如何在不声明新源的情况下从mediaended事件处理程序重复播放MediaElement?

我在WPF中播放video。我希望它循环播放所以我所做的是当媒体播放事件触发时,我播放我的video。 所以这会给我一个循环。 问题是为什么ui必须再次创造新的来源? 为什么我不能称之为’玩’? 出于某种原因,我不想在XAML中这样做。 看看我的代码片段: string startPath System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); public Window1() { InitializeComponent(); media.Source = new Uri(startPath + @”playlist.wpl”); media.play(); } private void Media_Ended(object sender, EventArgs e) { media.Source = new Uri(startPath + @”playlist.wpl”); //if i dont put this line, video wont play..seems like it cant get the source media.Play(); } 或者是否有一种正确的方法来循环NOT在XAML中,但在这里.cs文件?

MassTransit消息错误输入

我正在尝试通过MassTransit发布的消息遇到基本类型问题。 考虑以下: [Serializable] public abstract class Event : CorrelatedBy { public Guid CorrelationId { get; set; } public abstract string EventName { get; } public override string ToString() { return string.Format(“{0} – {1}”, EventName, CorrelationId); } } [Serializable] public class PersonCreated : Event { public PersonCreated(Guid personId, string firstName, string lastName) { PersonId = personId; […]