我一直试图让下面的VB代码在C#中运行数小时。我在CreateStroke()调用中不断收到Value does not fall within the expected range.
异常。 此外,here也是带有C++版本的Microsoft文档。帮我将下面的VB/C++代码转换为C#
Option Explicit
Dim theInkCollector As InkCollector
Private Sub Form_Load()
Set theInkCollector = New InkCollector
theInkCollector.hWnd = Me.hWnd
theInkCollector.Enabled = True
//Create a set of three points, stored as x1, y1, x2, y2, x3, y3
//in an array of six Long elements, starting at index 0.
Dim ptStrokePoints(5) As Long
ptStrokePoints(0) = 200
ptStrokePoints(1) = 200
ptStrokePoints(2) = 400
ptStrokePoints(3) = 600
ptStrokePoints(4) = 900
ptStrokePoints(5) = 300
//The description value is an unused placeholder.
Dim theDescription As Variant
Dim theStroke As IInkStrokeDisp
Set theStroke = theInkCollector.Ink.CreateStroke(ptStrokePoints, theDescription)
End Sub
以下是我有:
MSINKAUTLib.InkCollector collector = new MSINKAUTLib.InkCollector();
collector.hWnd = (int)(this.Handle);
collector.Enabled = true;
long[] pts = new long[6];
pts[0] = 200;
pts[1] = 200;
pts[2] = 400;
pts[3] = 600;
pts[4] = 900;
pts[5] = 300;
collector.Ink.CreateStroke(pts, new object());
“CreateStroke”的第一个参数需要int []而不是'long []'。 – Seth 2010-01-10 21:35:07
我尝试过int [],它仍然会显示“值不在预期的范围内”。 – Mark 2010-01-10 22:00:53