【发布时间】:2014-06-25 00:17:49
【问题描述】:
我和我的一些同事正在一起开展一个项目,遇到了一个我们无法解决的奇怪问题。
该项目涉及在一个客户端和服务器,用 C# 编写(我们使用的是 Visual Studio 2010)。我们为客户端使用VNCSharp library。
我所说的问题是,一旦我们开始与服务器的连接,就会引发 ArgumentException。
提供的一些信息是这样的:
********** 异常文本 **********
System.ArgumentException:参数无效。
在 System.Drawing.Bitmap..ctor(Int32 宽度,Int32 高度,PixelFormat 格式)
在 VncSharp.RemoteDesktop.SetupDesktop()
在 VncSharp.RemoteDesktop.Initialize()
在 VncSharp.RemoteDesktop.Connect(字符串主机,Int32 显示,布尔视图,布尔缩放)
在 VncSharp.RemoteDesktop.Connect(字符串主机)
在 RemoteDesktopTest.Form2.startConnection()
关于此的另一个奇怪的事情是它只发生某些次,而在其他时候它工作得很好。具体来说,它总是在调试模式下运行时(即,当我们使用 F11 逐行运行程序时),并且在定期运行时(即 Ctrl+F5)要么工作要么不工作,没有任何我们可以使用的模式认识。
我们将非常感谢任何和所有的帮助;如果我可以添加任何有助于回答这个问题的细节,请告诉我。 此外,对于任何语法/拼写错误,我深表歉意;英语不是我的第一语言……如果这个问题有问题,我也很抱歉。我们都是初学者,这是我们的第一个“大项目”,所以这也是我第一次在 Stack Overflow 提问。
编辑:
代码的某些部分可能是相关的。
这些是我们将 VncSharp 控件添加到表单并自定义其设置后自动生成的代码行:
this.remoteDesktop1 = new VncSharp.RemoteDesktop();
this.remoteDesktop1.AutoScroll = true;
this.remoteDesktop1.AutoScrollMinSize = new System.Drawing.Size(608, 427);
this.remoteDesktop1.Dock = System.Windows.Forms.DockStyle.Fill;
this.remoteDesktop1.Location = new System.Drawing.Point(0, 0);
this.remoteDesktop1.Name = "remoteDesktop1";
this.remoteDesktop1.Size = new System.Drawing.Size(1113, 580);
this.remoteDesktop1.TabIndex = 1;
这是我调用 Connect 方法的代码行,而 IP 只是从文本框中获取的字符串:
remoteDesktop1.Connect(this.IP);
这些来自处理 ConnectComplete 事件的方法(e 是传递给该方法的 EventArgs 对象):
this.Location = new Point(0,0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;
this.remoteDesktop1.Size = new System.Drawing.Size(e.DesktopWidth, e.DesktopHeight);
除了调用 Disconnect 方法的那一行之外,我们实际上没有编写任何其他代码行来处理这个对象。如果我意识到我忘记了一些东西,我会再次编辑并添加它。另外,如果我应该在此处添加代码中的任何特定内容,请告诉我。
【问题讨论】:
-
您有可以分享的代码以指出问题所在吗? How to Ask
-
Param 无效,它需要 int32 作为宽度和高度。你是如何生成这些参数的,你确定它们是整数
-
Vncsharp 是开源的。在
SetupDesktop()中设置程序断点。然后看看传递了什么参数。我怀疑它使用坐标而不是边界。 -
我想我可能应该共享代码,但不确定哪个部分可能是造成这种情况的原因,所以我希望这可能是一般情况...我将编辑并添加一些代码现在。
-
如果您能在否决这个问题时让我知道是什么原因,我将不胜感激,这样我以后的问题可能不会那么糟糕。我确实觉得这个问题很糟糕,但我们真的对这个问题的原因一无所知,也不知道还能做什么;通过适当的批评,下一次可能会更有成效,对各方都有帮助。对于协议,我在发布此问题之前确实浏览了如何提问页面。
标签: c# vnc argumentexception