c# - 包含类型未实现接口(interface) IMessageFilter

标签 c#

我仍在尝试找出此错误发生的原因:

OCR.test.IMessageFilter.PreFilterMessage(ref System.Windows.Forms.Message): containing type does not implement interface System.Windows.Forms.IMessageFilter

这是我的代码:

bool IMessageFilter.PreFilterMessage(ref Message m) // Error with this line
{
    TwainCommand cmd = tw.PassMessage(ref m);
    if (cmd == TwainCommand.Not)
        return false;

    switch (cmd)
    {
        case TwainCommand.CloseRequest:
        {
            EndingScan();
            tw.CloseSrc();
            break;
        }
        case TwainCommand.CloseOk:
        {
            EndingScan();
            tw.CloseSrc();
            break;
        }
        case TwainCommand.DeviceEvent:
        {
           break;
        }
        case TwainCommand.TransferReady:
        {
            ArrayList pics = tw.TransferPictures();
            EndingScan();
            tw.CloseSrc();
            picnumber++;
            for (int i = 0; i < pics.Count; i++)
            {
                IntPtr img = (IntPtr)pics[i];
                PicForm newpic = new PicForm(img);
                newpic.MdiParent = this;
                int picnum = i + 1;
                //newpic.Text = "ScanPass " + picnumber.ToString() + "_Pic " + picnum.ToString();
                newpic.Show();
            }
            break;
        }
    }

    return true;
}

最佳答案

实现 PreFilterMessage 方法的类需要从 IMessageFilter 接口(interface)派生。你可能错过了

public class Foo: IMessageFilter
{
   bool IMessageFilter.PreFilterMessage(ref Message m)
   {
       // your code
   }
}

关于c# - 包含类型未实现接口(interface) IMessageFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473650/

相关文章:

c# - 如何解决 : System. TypeLoadException?

c# - 带有 ListViewItem ContextMenu 的 g.cs 文件出错

c# - 向 'CreateUserWizard' 添加角色

c# - WPF 和 Silverlight 命令实现对于 M-V-VM (M-V-P) 模式毫无用处吗?

c# - asp.net MVC "Action Method"是否可以在不在参数上声明其特定类型的情况下接收 JSON?如果是这样,如何?

c# - WPF 使用 Magstrip 编码打印到打印机

c# - 如何判断服务器是否有ssl证书

c# - 使用有限域 FFT 的多项式乘法 - 选择第 n 个原单位根

c# - 如果不存在则创建一个 .txt 文件,如果确实存在则追加一个新行

c# - 如何P/Invoke "__arglist"函数?