当我构建我刚刚开始使用的vb.net 2010的发布项目时,我得到两个警告:
.net框架启动条件的版本与选定的.net框架引导程序包不匹配.更新.net framewk启动条件以匹配先决条件对话框中选择的.netfrk的版本.
项目中.net框架的目标版本与.net框架启动条件版本.net framework 4客户端配置文件不匹配.更新.net框架启动条件的版本,以匹配高级编译选项对话框中.net框架的目标版本.
我将主项目的框架从客户端配置文件(当我第一次创建它时)更改为frwk 4,因为我读到水晶报告不适用于frwk 4客户端配置文件.(真的吗).
引导版本Framework适用于x64和x86.我继续浏览网页,发现可以在安装项目的启动条件下更改框架.这些似乎分散在许多地方,这是一个我不记得曾与其他版本的.net有关的问题.无论如何,这解决了这个问题,但还有另一个问题与此相关.
我已经将anycpu更改为x86用于主项目和辅助项目,因为我在安装两个用于水晶的msi时遇到了问题.同时,其他二级项目(从2008年升级)我改为x86,但在配置文件中,它表示anycpu为这些并且如此处所写,不能更改为x86.我没有收到错误但尚未测试安装是否有效.
我在你的网站上读了一个答案,进入vbproj并将记事本从x86更改为x64,因为它们无法从anycpu更改为x86.但是我不想要x64所以不知道该怎么做.
似乎任何CPU都是一个很好的选择但是它可以与Crystal一起工作,如果我改变它,我需要附加x86 msi以外的其他吗?或者我可以在这种不明确的情况下保留原样.
我阅读了有关向AddHandler事件添加参数的所有当前帖子,但我无法将它们应用于我的情况.
在VB.NET 2008的MDI程序中,我有一个模块QuickSaleModule,它调用几个模态数据输入表单来向表中添加订单.发生这种情况时,会打开一个带有网格的表单,显示表中的所有订单.此表单网格已与订单模块分开打开,因此表单和模块都不相互依赖,尽管它们是解决方案中同一项目的一部分.订单网格来自SQL查询.
在模块中,我定义了简单的事件:
公共事件RefreshGrid()
我在模块中的某个点提出它 - 在输入并保存订单后:
RaiseEvent RefreshGrid()
现在我在load事件中的网格表单中:
AddHandler QuickSaleModule.RefreshGrid, AddressOf RefreshMyGrid
Run Code Online (Sandbox Code Playgroud)
对于RefreshMyGrid()处理程序,我有:
Public Sub RefreshMyGrid()
DoReturnSetup() – a sub in the grid form
removeHandler QuickSaleModule.RefreshGrid, AddressOf RefreshMyGrid
End Sub
Run Code Online (Sandbox Code Playgroud)
这将调用SQL查询以使用新订单刷新gridform.可以在退出之前通过quickSaleModule添加许多订单,因此每次输入新订单时我都会调用该事件,因此删除处于关闭状态的处理程序是没有意义的.但是,这是我创建的第一个AddHandler事件.
这是我的问题:
最重要的.如何将模块中的orderID作为参数传递给网格表单中的RefreshMyGrid处理程序?我想我可以使用全局变量,但我更喜欢更好的东西.现在作为一个事件新手,似乎我没有使用其他方法来调用事件.当我退出从网格表单调用的dataentry表单时,我使用with事件(带参数).但正如我所说,在这种情况下,没有任何联系.
"removeHandler QuickSaleModule.RefreshGrid,AddressOf RefreshMyGrid"的位置是否正确?或者它应该是封闭事件的形式.
最后,RefreshMyGrid需要公开吗?