你可以通過簡單地使另一個功能SpatialControl_MouseDoubleClick
調用要做的第一件事(呼叫,而無需使用MouseButtonEventArgs
該功能):
private void spatialControl_DoubleClick()
{
_camChanged = false;
DrawingControl.Viewport.Camera.Changed += Camera_Changed;
DrawingControl.ZoomSelected();
DrawingControl.Viewport.Camera.Changed -= Camera_Changed;
if (!_camChanged)
DrawingControl.ClipBaseSelected(0.15);
DrawingControl.Viewport.Camera.Position = new Point3D(100, 100, 1);
DrawingControl.Viewport.SetView(new Point3D(-1,-1,-1), new Vector3D(1,1,1), new Vector3D(1,2,1),5);
}
private void SpatialControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
spatialControl_DoubleClick();
}
或者,你可以保持您SpatialControl_MouseDoubleClick
功能,去除它的參數,然後去你的[FormName].Designer.cs
文件,找到
`this.[control-name].MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.SpatialControl_MouseDoubleClick);
行並將其更改爲
this.[control-name].MouseDoubleClick += (sender, e) => this.SpatialControl_MouseDoubleClick();
然後,在你的[FormName].cs
文件中的代碼看起來就像這樣:
private void SpatialControl_MouseDoubleClick()
{
_camChanged = false;
DrawingControl.Viewport.Camera.Changed += Camera_Changed;
DrawingControl.ZoomSelected();
DrawingControl.Viewport.Camera.Changed -= Camera_Changed;
if (!_camChanged)
DrawingControl.ClipBaseSelected(0.15);
DrawingControl.Viewport.Camera.Position = new Point3D(100, 100, 1);
DrawingControl.Viewport.SetView(new Point3D(-1,-1,-1), new Vector3D(1,1,1), new Vector3D(1,2,1),5);
}
你所說的「使不使用MouseButtonEventArgs工作」是什麼意思?這是一個事件處理程序,它由鼠標事件調用。 (特別是雙擊。)爲什麼鼠標事件中不會有MouseButtonEventArgs?此外,該代碼不*使用它給出的MouseButtonEventArgs *做任何事情,所以它以什麼方式不起作用? – David
刪除MouseButtonEventArgs的目的是什麼? –
所以我的項目是關於自動完成任何事情的,比如我想要顯示一個模型,設置它的初始位置,然後點擊「Run」來旋轉模型。之後我不想再有任何人際交往。但是我發現的所有例子都是通過使用MouseEventArgs或按鈕來旋轉模型,所以我想要改變這些函數並使它們與事件參數一起工作。所以這個班只是一個例子,因爲我不能發佈我的所有項目,因爲它是Huuuuuuuuuuuuge –