这不管用:
clsTestDefaultInstance
Dim HowAmIInitialised As Integer
Private Sub Class_Initialize()
HowAmIInitialised = 99
End Sub
Public Sub CallMe()
Debug.Print "HowAmIInitialised=" & HowAmIInitialised
End Sub
也就是说,clsTestDefaultInstance.CallMe()输出HowAmIInitialised=99,因为即使对默认实例也会调用Cla
我有两个公共变量,每个变量来自两种不同的形式。
Form1.VB
Public UserNo As String
Form2.VB
Public MyUserNo As String
在我的Form2.VB文件中,我为Form1.VB的UserNo赋值
Form1.UserNo = MyUserNo
每当我访问Form1.VB时,MyUserNo的值都变空了,我该怎么办?这两个表单都不是关闭的。
当我需要在Form1.VB上使用它时,我还尝试重新赋值
UserNo = Form2.MyUserNo
我已经集成了Fabric Js,它工作得很好,但是我有一个查询,当我添加多个图像时,我不能将一个图像拖到另一个图像上,而最后一个添加的图像停留在顶部,它们的位置可以改变吗?我找到了一个小提琴,它的工作良好,但它没有图像和动态生成的元素条。
var canvas = window.__canvas = new fabric.Element('drawing_area');
$(".vb_image li a img, .vb_frame_slider, .vb_quote_slider, .vb_graphic_slider").click(fu
在C#中
(new Action(() => MessageBox.Show("Hello"))).BeginInvoke(null, null);
在VB中,翻译后的代码无法编译
(New Action(Sub() MessageBox.Show("Hello"))).BeginInvoke(nothing, nothing)
但在VB中,我可以将BeginInvoke的结果设置为隐式变量a,然后它就会运行(感谢@Ric在另一篇文章中提出的这个建议)
Dim a = (New Action(Sub() MessageBox.Show("Hello
为什么控制台应用程序之间的结构在C#和VB.NET之间看起来如此不同?
在C#中,我经常创建Program类的一个实例:
namespace ConsoleApplicationX {
class Program {
static void Main(string[] args) {
Program p;
p = new Program();
...
...
在一个VB.NET示例中,Main位于一个名为__ZooWork.vb的文件中,如下所示:
Module __ZooWork
假设我在class1.vb中有一个这样的类:
Public Class my_class
Public Sub my_sub()
Dim myvar as String
myvar = 10
Session("myvar") = myvar
End Sub
End Class
然后,我有一个包含代码隐藏文件default.aspx和default.aspx.vb的ASP.NET页面,我想调用my_class。我正在执行以下操作,但它不起作用:
Imports my_app.my_class
Partial Public Class _default
编辑:这是不小心发布了两次。原件:
我看到了一些代码,其中导入了一个Class,而不是一个名称空间,使该类的所有静态成员/方法都可用。这是VB的一个特性吗?或者其他语言也是这样做的?
TestClass.vb
public class TestClass
public shared function Somefunc() as Boolean
return true
end function
end class
MainClass.vb
imports TestClass
public class MainClass
public sub Main()
有人能给我解释一下吗?
在Visual Studio2010中,创建一个VB.net Windows Forms App。添加2个表单: Form1和Form2。在Form1 Load事件中,键入Form2.Close()。现在,如果我们查看方法定义,Close()不是一个静态(共享)方法。那么,如何在运行时编译或工作呢?
此外,在C#和Form2.Close()中做同样的事情不会编译。
到底怎么回事?为什么这在VB.net中是可能的,以及在执行该行代码时实际发生了什么?
我有一个简单的C#库,我已经为COM互操作注册了该库。我已经在我的vb6应用程序中添加了对此的引用。我运行了我的vb应用程序,一切运行正常。我想知道的是这是如何工作的。我检查了任务管理器,在进程中看到了VB6.exe,但我看不到任何与.net相关的内容。
代码: vb6
Dim a As CsharpdllForVBHack.ComAdder
Private Sub Command1_Click()
Set a = New CsharpdllForVBHack.ComAdder
a.Add 1, 4
End Sub
代码: C#.net
[ComVisible(true)]
筛选字符串数组的VB.Net代码是什么?
我使用以下代码
Imports System.Reflection
Dim ass As Assembly = Assembly.GetExecutingAssembly()
Dim resourceName() As String = ass.GetManifestResourceNames()
返回字符串数组的
如何筛选resourceName()变量?
我试过以下几行代码
Dim sNameList() As String
= resourceName.FindAll(Function(x As String) x.En
我有一个从别人那里得到的VB.net程序。它由一个主窗体和6个其他模块(所有.vb文件)组成。在资源管理器窗格中,这些文件旁边都有一个"VB“图标。我正在尝试从主窗体调用其中一个模块中的子例程。我的代码行是:
QuoteMgr.StartGettingQuotesLevel2(sSym)
其中QuoteMgr是模块的名称,StartGettingQuotesLevel2(sSym)是子例程的名称。当我输入以下命令时,我得到错误消息:
Reference to a non-shared member requires an object reference.
该子程序在QuoteMg
我有一个遗留的VB.Net类库,其中包含一些扩展方法,其中一个大致如下:
Namespace Extensions
Public Module OrmExtensions
<Extension()>
Public Function ToDomainObjectCollection(ByRef objects As OrmCollection(Of OrmObject)) As DomainObjectCollection
Return objects.AsQueryable().ToDomainObjectColle
我有vb.net方法,我从JS代码中调用它,我不能向这个方法发送参数,下面是示例: JS代码:
function OnSave()
{
var sign = document.FORM1.SigPlus1.Signature();
<%Save(sign) %>
}
VB方法:
Public Sub Save(ByVal obj As Object)
Dim obj1 As New PFSIGNATURELib.SigniShellSignature
obj1.SignatureBytes = obj
obj
我看到了一些代码,其中导入了一个Class,而不是一个名称空间,使该类的所有静态成员/方法都可用。这是VB的一个特性吗?或者其他语言也是这样做的?
TestClass.vb
public class TestClass
public shared function Somefunc() as Boolean
return true
end function
end class
MainClass.vb
imports TestClass
public class MainClass
public sub Main()
Somefunc(
对于VB.Net的Static关键字,有没有Java等价物--特别是在安卓上?对于那些不熟悉VB.NET的人,请看下面的代码片段...
Sub MyFunc()
Static myvar As Integer = 0
myvar += 1
End Sub
Static关键字使得myvar在随后的MyFunc调用之间保持它的值。
因此,在三次调用MyFunc之后,myvar的值将是:1、2和3。
在Java中,如何在方法中创建跨调用持久变量?你能?
我想调用我在mysql中创建的查询。它是通过navicat接口工作的。我试图通过vb6访问这个查询--我得到了"Runtime 91对象变量或块变量未设置“
我的代码vb6:
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SqlCmd As ADODB.Command
con.Open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;Database=databasename;Username=user;password=pw"
我在VB.NET和C# (.NET2)中遇到了静态/共享成员的可见性问题。在我看来,在VB.NET中有一点奇怪:
public class A
{
private static A instance;
public static A Instance
{
get { return instance; }
}
public string Name { get { } }
}
用法:A.Instance.Name // 只有名称是“可见的”
VB.NET:
Pub
我一直认为DbNull.value是一个单例。因此你可以做这样的事情:
VB.NET:
If someObject Is DbNull.Value Then
...
End if
C#:
If (someObject == DbNull.Value)
{
...
}
但是最近,我使用XmlSerialiser序列化了一个DbNull实例,突然它就不再是单例了。类型比较操作(如C#的(obj为DBNull))可以正常工作。
代码如下:
[Serializable, System.Xml.Serialization.XmlInclude(typeof(DBNull))]
publi
我正在写一个C#.net。我有一个vb.net的代码,我想把这些代码转换成C#。我已经完成了我的所有任务,但在运行应用程序时,它给我一个错误,即object not set to a object reference。下面是我的VB.net代码。我在代码中使用了第三方ddl,所以ExchangeList是那个动态链接库的一个类。
Private WithEvents moExchanges As ExchangeList
Private Sub RequestChartData()
Trace.WriteLine("Init")
我已经将一个VB6程序转换为VB.Net。该程序运行,并似乎操作约80%的ok。我很难理解一些for引用是如何工作的。 在VB6中,我有如下代码 frmComms.MSComm1.PortOpen = True
' if port already used by other app then warn user and go back to initial screen
If (Err.Number = PORT_ALREADY_USED) And (GlManualCom = MANUAL) Then
frmDetection.Hide
MsgBox rs.Lo
我用VB.NET编写了以下方法:
Public Shared Function formatClassNameAndMethod(ByVal prefix As String, ByVal stackFrame As StackFrame) As String
Dim methodBase As MethodBase = StackFrame.GetMethod()
Return prefix + ":[" + stackFrame.GetMethod().DeclaringType.Namespace + "][" + st
在csharp或vb.net中,我们使用using语句的原因是我们知道的:我们可以打开数据库并自动关闭它,而无需显式地写入它。我想在VBA上做些比较。
怎么做?
所有VB.NET语句/关键字/在VBA中都可用吗?
如何判断给定的语句是否在VBA中已知?是否有所有VBA语句/关键字/操作符的库(字库)?
c#
using(var db=new MyDbContext()){
//do work here
}
vb.net
Using s = New MyDbContext()
'--..do work here
End Usin