//コントロール位置からネイティブ位置を計算 private void RecalculateNativePosition() { Point pixelLocation = this.Location; pixelLocation.Offset(pixelLocationOffset.X, pixelLocationOffset.Y); this.NativeX = EtCourseScaler.PixelToNativeInvY(pixelLocation).X; this.NativeY = EtCourseScaler.PixelToNativeInvY(pixelLocation).Y; }
//イベント ハンドラ //制御点を追加 private void addControlPointMenu_Click(object sender, EventArgs e) { //制御点を追加する座標を算出して作成 Point addLocation = EtCourseScaler.PixelToNativeInvY(coursePicture.PointToClient(new Point(mapMenu.Left, mapMenu.Top))); ControlPoint point = AddControlPoint(addLocation); //選択する this.ControlPointSelected(point); //線を再描画 UpdateView(); }
/** * コースのドラッグスクロール中? */ private void coursePicture_MouseMove(object sender, MouseEventArgs e) { if (bScrolling) { //ドラッグスクロール中 Point scrollPoint = coursePicture.PointToScreen(new Point(e.X, e.Y)); int x = scrollPoint.X - scrollOrigin.X; int y = scrollPoint.Y - scrollOrigin.Y; this.AutoScrollPosition = new Point(x * -1, y * -1); } else { //座標を通知 NoticeMousePos(EtCourseScaler.PixelToNativeInvY(new Point(e.X, e.Y))); } }