Eventlog.EntryWritten在WinForm中调用 [英] Eventlog.EntryWritten Invoked in WinForm

查看:69
本文介绍了Eventlog.EntryWritten在WinForm中调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好



当我执行代码时,我得到一个参数不匹配异常。

我该怎么做?是C #Windows表单



Hello

When i execute the code i get a parameter mismatch exception.
How do i do it correctly? Is a C# Windows Form

private void events_EntryWritten(object sender, EntryWrittenEventArgs e)
{
  if(InvokeRequired)
  {
    Invoke(new EntryWrittenEventHandler(events_EntryWritten));
  }
  else
  {                
    foreach (EventLogEntry entry in events.Entries)
    {
      lvEventlog.Items.Add(entry.TimeWritten.ToString());
      lvEventlog.Items[lvEventlog.Items.Count].SubItems.Add(entry.Message);
    }
  }
}

推荐答案

events_EntryWritten 方法在使用 Invoke 方法调用它时需要两个参数(sender和e)。但是,你没有通过电话传递它们而不是

The events_EntryWritten method expects two parameters (sender and e) when you call it using the Invoke method. However, you're not passing them with the call so instead of
...
if(InvokeRequired)
{
  Invoke(new EntryWrittenEventHandler(events_EntryWritten));
}
...



尝试


try

...
if (InvokeRequired) {
   Invoke(new System.Diagnostics.EntryWrittenEventHandler(events_EntryWritten), new object[] {sender, e});
} 
...



你也可能想把新条目添加到你的列表视图中,所以剩下的代码可能就像


Also you probably mean to add the new entry to your list view so perhaps the remaining code should be something like

...
} else {
      lvEventlog.Items.Add(e.Entry.TimeWritten.ToString());
      lvEventlog.Items[lvEventlog.Items.Count - 1].SubItems.Add(e.Entry.Message);
}


这篇关于Eventlog.EntryWritten在WinForm中调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆