Eventlog.EntryWritten在WinForm中调用 [英] Eventlog.EntryWritten Invoked in WinForm
本文介绍了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)。但是,你没有通过电话传递它们而不是
Theevents_EntryWritten
method expects two parameters (sender and e) when you call it using theInvoke
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屋!
查看全文