我正在使用 wpf 应用程序编写 C#,但收到此错误
parameter count mismatch
调用 DoDisplay
方法时。不知道少了哪个参数?
这是我的代码
public System.Windows.Controls.RichTextBox _displayWindow = new System.Windows.Controls.RichTextBox();
public void DisplayData(messageType type, String msg)
{
_displayWindow.Dispatcher.Invoke(new EventHandler(DoDisplay));
}
public void DoDisplay(object sender, EventArgs e)
{
try {
_displayWindow.Selection.Text = string.Empty;
_displayWindow.AppendText(_msg);
_displayWindow.ScrollToEnd();
}
catch (Exception ex)
{
}
}
最佳答案
Dispatcher.Invoke
采用 Action
,即不带参数的 delegate
。由于您在方法中没有使用 sender
和 EventArgs
,因此将您的方法更改为:
public void DoDisplay()
{
}
及其调用:
_displayWindow.Dispatcher.Invoke(new Action(() => DoDisplay()));
如果您想使用要调用的委托(delegate)
,那么您必须在调用中传递参数:
_displayWindow.Dispatcher.Invoke(YOURDELEGATE, YOURPARAMETERS)
关于c# - "parameter count mismatch"调用方法时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701731/