我在C#中有这个使用MouseEventArgs的类,我想调用该函数并使其工作而不使用MouseEventArgs。任何想法我该怎么做?
private void SpatialControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
_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);
答案 0 :(得分:0)
只需从另一种方法调用处理方法。
public void Mymethod()
{
// Callind the event
SpatialControl_MouseDoubleClick(new object(), new MouseButtonEventArgs())
// Executing other code.
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);
}
答案 1 :(得分:0)
你可以通过简单地创建MouseButtonEventArgs
调用的另一个函数来做第一件事(不使用SpatialControl_MouseDoubleClick
来调用该函数):
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);
}