Ejemplo n.º 1
0
 /// <summary>
 /// REDO処理
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonRedo_Click(object sender, EventArgs e)
 {
     if (reFigList.Count == 0)
     {
         return;
     }
     figList.Add(reFigList[reFigList.Count - 1]);
     reFigList.RemoveAt(reFigList.Count - 1);
     PanelPaint.Refresh();
 }
Ejemplo n.º 2
0
        /// <summary>
        ///     ''' マウス移動
        ///     ''' </summary>
        ///     ''' <param name="sender"></param>
        ///     ''' <param name="e"></param>
        ///     ''' <remarks></remarks>
        private void PanelPaint_MouseMove(System.Object sender, System.Windows.Forms.MouseEventArgs e)
        {
            // 現在の位置の保持と表示
            LabelXY.Text = e.X + "," + e.Y;
            nowPoint.X   = e.X;
            nowPoint.Y   = e.Y;

            //フリーハンド描画でドラッグ中は座標保存
            if (isDragging && isPaintingFreehand)
            {
                freeHandX.Add(e.X);
                freeHandY.Add(e.Y);
            }

            PanelPaint.Refresh();
        }
Ejemplo n.º 3
0
 private void graphicPanel_Paint(object sender, PaintEventArgs e)
 {
     PanelPaint?.Invoke(sender, e);
 }
Ejemplo n.º 4
0
 /// <summary>
 ///     ''' マウスボタンアップ
 ///     ''' </summary>
 ///     ''' <param name="sender"></param>
 ///     ''' <param name="e"></param>
 ///     ''' <remarks></remarks>
 private void PanelPaint_MouseUp(System.Object sender, System.Windows.Forms.MouseEventArgs e)
 {
     //
     if (e.Button == MouseButtons.Left)
     {
         // ドラッグ終了
         if (isPainting)
         {
             isDragging = false;
             endPoint.X = e.X;
             endPoint.Y = e.Y;
         }
         //文字入力終了
         if (isInputtingText)
         {
             if (checkBoxBrush.Checked)
             {
                 textBrush = paintBrush;
             }
             else
             {
                 textBrush = new SolidBrush(TransparentColor);
             }
             if (checkBoxLine.Checked)
             {
                 textPen = paintPen;
             }
             else
             {
                 textPen = new Pen(TransparentColor, 1);
             }
             ClsFigure gText = new ClsGText(textPen, textBrush, paintTextFont, paintTextColor,
                                            inputTextBox.Left, inputTextBox.Top,
                                            inputTextBox.Width, inputTextBox.Height, inputTextBox.Text);
             inputTextBox.Dispose();
             isPainting      = false;
             isInputtingText = false;
             figList.Add(gText);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = gText.castClassFigure();
         }
         // パーツ確定
         if (isPaintingRectangle)
         {
             int       leftTopX = startPoint.X > endPoint.X ? endPoint.X : startPoint.X;
             int       leftTopY = startPoint.Y > endPoint.Y ? endPoint.Y : startPoint.Y;
             ClsFigure rect     = new ClsRectangle(paintPen, paintBrush,
                                                   leftTopX, leftTopY,
                                                   Math.Abs(endPoint.X - startPoint.X), Math.Abs(endPoint.Y - startPoint.Y));
             figList.Add(rect);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = rect.castClassFigure();
         }
         else if (isPaintingEllipse)
         {
             int       leftTopX = startPoint.X > endPoint.X ? endPoint.X : startPoint.X;
             int       leftTopY = startPoint.Y > endPoint.Y ? endPoint.Y : startPoint.Y;
             ClsFigure elps     = new ClsEllipse(paintPen, paintBrush,
                                                 leftTopX, leftTopY,
                                                 Math.Abs(endPoint.X - startPoint.X), Math.Abs(endPoint.Y - startPoint.Y));
             figList.Add(elps);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = elps.castClassFigure();
         }
         else if (isPaintingLine)
         {
             ClsFigure line = new ClsLine(paintPen,
                                          startPoint.X, startPoint.Y,
                                          endPoint.X, endPoint.Y);
             figList.Add(line);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = line.castClassFigure();
         }
         else if (isPaintingArrow)
         {
             ClsFigure arrow = new ClsArrow(paintPen,
                                            startPoint.X, startPoint.Y,
                                            endPoint.X, endPoint.Y);
             figList.Add(arrow);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = arrow.castClassFigure();
         }
         else if (isPaintingText)
         {
             //入力用リッチテキストボックスの設定
             inputTextBox = new AlphaControls.AlphaRichTextBox();
             if (checkBoxBrush.Checked && brushColor.A > 0)
             {
                 inputTextBox.BackAlpha = brushColor.A;
                 inputTextBox.BackColor = Color.FromArgb(brushColor.R, brushColor.G, brushColor.B);
             }
             else
             {
                 inputTextBox.BackAlpha = 0;
                 inputTextBox.BackColor = Color.White;
             }
             inputTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
             inputTextBox.Font        = paintTextFont;
             inputTextBox.ForeColor   = paintTextColor;
             inputTextBox.Location    = new System.Drawing.Point(startPoint.X, startPoint.Y);
             inputTextBox.Multiline   = true;
             inputTextBox.Name        = "inputTextBox";
             int width = (endPoint.X != startPoint.X) ? (int)Math.Abs(endPoint.X - startPoint.X) : 320;
             inputTextBox.Size = new System.Drawing.Size(
                 width,
                 (int)(TextRenderer.MeasureText("あ", paintTextFont).Height + inputTextBox.Margin.Vertical));
             inputTextBox.TabIndex     = 0;
             inputTextBox.ImeMode      = ImeMode.Off;
             inputTextBox.TextChanged += new EventHandler(inputTextBox_TextChanged);
             ControlsTransparent(inputTextBox, PanelPaint);
             //強制的にフォーカス
             inputTextBox.Focus();
             isPaintingText  = false;
             isInputtingText = true;
         }
         else if (isPaintingFreehand)
         {
             ClsFigure freehand = new ClsFreehand(paintPen, freeHandX, freeHandY);
             figList.Add(freehand);
             reFigList.Clear();
             PanelPaint.Refresh();
             lastFigure = freehand.castClassFigure();
         }
     }
 }