首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于C#转VB.net的问题(急!!)
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bazhfa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-22 22:52:06 楼主
    有如下代码:
    C# code
    public event PrintPageDelegate PrintPage { add { _printDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(value); _printPageValue = value; } remove { _printDocument.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(value); _printPageValue = null; } }

    把它变换成VB.net代码如下:
    [code=VB.net#]

    Public Custom Event PrintPage As PrintPageDelegate
        AddHandler(ByVal value As PrintPageDelegate)
            AddHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = value
        End AddHandler
        RemoveHandler(ByVal value As PrintPageDelegate)
            RemoveHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = Nothing
        End RemoveHandler
    End Event
    [/code]

    总是报错:
    错误 13 “AddressOf”操作数必须是某个方法的名称(不带圆括号)。
    错误 11 缺少事件“PrintPage”的“RaiseEvent”定义。

    请高手指点


    40  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bazhfa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 23:10:161楼 得分:0
    VB.NET code
    Public Custom Event PrintPage As PrintPageDelegate AddHandler(ByVal value As PrintPageDelegate) AddHandler _printDocument.PrintPage, AddressOf value _printPageValue = value End AddHandler RemoveHandler(ByVal value As PrintPageDelegate) RemoveHandler _printDocument.PrintPage, AddressOf value _printPageValue = Nothing End RemoveHandler End Event
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • downmoon
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 23:24:402楼 得分:0

    Public Custom Event PrintPage As PrintPageDelegate
        AddHandler(ByVal value As PrintPageDelegate)
            AddHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = value
        End AddHandler
        RemoveHandler(ByVal value As PrintPageDelegate)
            RemoveHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = Nothing
        End RemoveHandler
    End Event
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • downmoon
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 23:25:263楼 得分:0
    http://www.kamalpatel.net/ConvertCSharp2VB.aspx
    http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linjimu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 09:33:554楼 得分:0
    VB.NET code
    Public Custom Event PrintPage As PrintPageDelegate AddHandler(ByVal value As PrintPageDelegate) AddHandler _printDocument.PrintPage, AddressOf value _printPageValue = value End AddHandler RemoveHandler(ByVal value As PrintPageDelegate) RemoveHandler _printDocument.PrintPage, AddressOf value _printPageValue = Nothing End RemoveHandler End Event
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhang_yuanyuan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 15:16:035楼 得分:0
    Public Custom Event PrintPage As PrintPageDelegate
        AddHandler(ByVal value As PrintPageDelegate)
            AddHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = value
        End AddHandler
        RemoveHandler(ByVal value As PrintPageDelegate)
            RemoveHandler _printDocument.PrintPage, AddressOf value
            _printPageValue = Nothing
        End RemoveHandler
    End Event
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bazhfa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 18:50:126楼 得分:0
    请大家看清楚了再回,我写的代码跟各位的一样。真诚希望高手解决一下。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • taick
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 18:59:147楼 得分:0
    错误 13 “AddressOf”操作数必须是某个方法的名称(不带圆括号)。
    这一句的意思是指 “AddressOf”后面跟的必须是方法,例如sub,你的value应该不是一个方法.

    错误 11 缺少事件“PrintPage”的“RaiseEvent”定义。
    这一句是因为控件_printDocument并没有“PrintPage”这个事件.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bfblang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-29 23:38:568楼 得分:0
    关键是value
    VB.NET code
    Public Custom Event PrintPage As PrintPageDelegate AddHandler(ByVal [u]value[/u] As PrintPageDelegate) AddHandler _printDocument.PrintPage, AddressOf value _printPageValue = value End AddHandler RemoveHandler(ByVal [u]value[/u] As PrintPageDelegate) RemoveHandler _printDocument.PrintPage, AddressOf value _printPageValue = Nothing End RemoveHandler End Event

    其实这段代码翻译是对应翻译了但是好像正确应用写法不符合实际情况。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gyc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-30 13:04:069楼 得分:0

    VB.NET code
    private _printPageValue as PrintPageDelegate Public Custom Event PrintPage As PrintPageDelegate AddHandler(ByVal value As PrintPageDelegate) _printPageValue = Directcast([Delegate].Combine(_printPageValue ,value ) , PrintPageDelegate ) End AddHandler RemoveHandler(ByVal value As PrintPageDelegate) _printPageValue = Directcast([Delegate].Remove(_printPageValue ,value ) , PrintPageDelegate ) End RemoveHandler RaiseEvent(byval sender as object, byval e as PrintPageDelegate ) if _printPageValue isnot nothing then _printPageValue.Invoke(sender,e) end if '或者使用下面的 if _printPageValue isnot nothing then for each hander as PrintPageDelegate in _printPageValue.GetInvocationList() handler.invoke(sender,e) if e.cancel then Exit For '如果事件,支持取消,请使用这个, 不然,在多个事件中,可能发生 Cancel被重置的问题 Next end if end raiseevent End Event
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ChrisAK
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-30 13:07:2510楼 得分:0
    vb.net?
    不懂,
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linjimu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-02 11:55:1611楼 得分:0
    呵呵。我今天也遇到这样的问题。
    楼主应该是用长江支流的GoldPrinter或MisGoldPrinter的代码吧。
    我也是转化成VB.Net的。也是这样的问题。还有待研究。
    ---
    因为GoldPrinter的WebPrinterPageSetting没有实现出来。所以想把那个接口去掉。改成直接可以用到winform的class就好了。接口麻烦。还有待研究。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linjimu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-02 16:03:2312楼 得分:0
    哎,研究了一天。
    直接把 AddHandler _printDocument.PrintPage, AddressOf MyDoc_printPage 去掉就好了。
    ------
    在实例化中添加一个MyDoc_printPage(sender as object , e as System.Drawing.Printing.PrintPageEventArgs) Handles PrinterPageSetting1.PrintPage
    PrinterPageSetting1就是你是实例对象。
    --------
    下面是GoldPrinter代码修改的。
    ''' <summary>
            ''' 一定要实例化此类后在调用打印/预览之前设置此属性,使之关联一个方法,目的是让具体的打印由实例化者来操作
            ''' 如PrinterPageSetting1.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler);
            ''' </summary>
            Public Property PrintPage() As PrintPageEventHandler Implements IPrinterPageSetting.PrintPage
                '初始委托变量,关联方法
                Get
                    Return _printPage
                End Get
                Set(ByVal value As PrintPageEventHandler)
                    _printPage = value
                    If _printDocument Is Nothing Then
                        Throw New Exception("关联的打印文档不能为空!")
                    End If
                    '在实例中添加这个PrintPageEventHandler:
                    'AddHandler _printDocument.PrintPage, AddressOf MyDoc_printPage
                End Set
            End Property
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • linjimu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-02 16:12:5613楼 得分:0
    对于你的代码:
    你可以去掉这一句:AddHandler _printDocument.PrintPage, AddressOf value
    在实例代码中添加:
    private sub MyPrinter(sender as object , e as System.Drawing.Printing.PrintPageEventArgs) Handles PrinterPageSetting1.PrintPage
    '添加你要打印代码。打印你的内容。
    end sub
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved