/// <summary> /// 确定操作 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSure_Click(object sender, EventArgs e) { try { ClsLine templine = new ClsLine(); templine.Id = Id.ToString(); templine.Penid = cboPenType.Text; templine.X1 = Convert.ToSingle(numD_X1.Value); templine.Y1 = Convert.ToSingle(numD_Y1.Value); templine.X2 = Convert.ToSingle(numD_X2.Value); templine.Y2 = Convert.ToSingle(numD_Y2.Value); templine.Times = Convert.ToInt16(numD_Times.Value); if (txtSpan.Text.Trim() != "") { templine.Spans = Convert.ToSingle(txtSpan.Text); } else { templine.Spans = 0; } templine.Direction = cboDirctionType.Text; cm.newnode = new TreeNode(); cm.newnode.Text = "线-" + Id.ToString(); cm.newnode.Name = Id.ToString(); cm.newnode.Tag = templine; this.Close(); } catch { cm.newnode = null; } }
/// <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(); } } }
/// <summary> /// 描画 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PanelPaint_Paint(System.Object sender, System.Windows.Forms.PaintEventArgs e) { // パーツ描画 for (int i = 0; i <= figList.Count - 1; i++) { figList[i].Draw(e.Graphics); } // ドラッグ中は長方形描画 if (isDragging) { if (!isPaintingFreehand) { // 範囲の描画 // | e.Graphics.DrawLine(blacDotPen, startPoint.X, startPoint.Y, startPoint.X, nowPoint.Y); // | e.Graphics.DrawLine(blacDotPen, nowPoint.X, startPoint.Y, nowPoint.X, nowPoint.Y); //  ̄ e.Graphics.DrawLine(blacDotPen, startPoint.X, startPoint.Y, nowPoint.X, startPoint.Y); // _ e.Graphics.DrawLine(blacDotPen, startPoint.X, nowPoint.Y, nowPoint.X, nowPoint.Y); } // 仮描画 if (isPaintingRectangle) { int leftTopX = startPoint.X > nowPoint.X ? nowPoint.X : startPoint.X; int leftTopY = startPoint.Y > nowPoint.Y ? nowPoint.Y : startPoint.Y; ClsRectangle rect = new ClsRectangle(paintPen, paintBrush, leftTopX, leftTopY, Math.Abs(nowPoint.X - startPoint.X), Math.Abs(nowPoint.Y - startPoint.Y)); rect.Draw(e.Graphics); } else if (isPaintingEllipse) { int leftTopX = startPoint.X > nowPoint.X ? nowPoint.X : startPoint.X; int leftTopY = startPoint.Y > nowPoint.Y ? nowPoint.Y : startPoint.Y; ClsEllipse elps = new ClsEllipse(paintPen, paintBrush, leftTopX, leftTopY, Math.Abs(nowPoint.X - startPoint.X), Math.Abs(nowPoint.Y - startPoint.Y)); elps.Draw(e.Graphics); } else if (isPaintingLine) { ClsFigure line = new ClsLine(paintPen, startPoint.X, startPoint.Y, nowPoint.X, nowPoint.Y); line.Draw(e.Graphics); } else if (isPaintingArrow) { ClsFigure arrow = new ClsArrow(paintPen, startPoint.X, startPoint.Y, nowPoint.X, nowPoint.Y); arrow.Draw(e.Graphics); } else if (isPaintingFreehand) { ClsFigure freehand = new ClsFreehand(paintPen, freeHandX, freeHandY); freehand.Draw(e.Graphics); } } }
private void picTemperatureShow_MouseMove(object sender, MouseEventArgs e) { _strTip = ""; _ptTip = new Point(e.X + 10, e.Y); tlbllocation.Text = "当前鼠标坐标:" + "X:" + e.X.ToString() + " Y:" + e.Y.ToString(); if (tdrag) { int spanx = e.X - p1.X; int spany = e.Y - p1.Y; try { if (trvTemperture.SelectedNode.Tag != null) { if (trvTemperture.SelectedNode.Tag.ToString() == "TempertureEditor.Element.ClsRec") { ClsRec temp = (ClsRec)trvTemperture.SelectedNode.Tag; Rectangle rec = new Rectangle(temp.Rec.X + spanx, temp.Rec.Y + spany, temp.Rec.Width, temp.Rec.Height); temp.Rec = rec; trvTemperture.SelectedNode.Tag = temp; } else if (trvTemperture.SelectedNode.Tag.ToString() == "TempertureEditor.Element.ClsLine") { ClsLine temp = (ClsLine)trvTemperture.SelectedNode.Tag; temp.X1 = temp.X1 + spanx; temp.Y1 = temp.Y1 + spany; temp.X2 = temp.X2 + spanx; temp.Y2 = temp.Y2 + spany; trvTemperture.SelectedNode.Tag = temp; } else if (trvTemperture.SelectedNode.Tag.ToString() == "TempertureEditor.Element.ClsText") { ClsText temp = (ClsText)trvTemperture.SelectedNode.Tag; temp.X1 = temp.X1 + spanx; temp.Y1 = temp.Y1 + spany; trvTemperture.SelectedNode.Tag = temp; } else if (trvTemperture.SelectedNode.Tag.ToString() == "TempertureEditor.Element.ClsText") { ClsText temp = (ClsText)trvTemperture.SelectedNode.Tag; temp.X1 = temp.X1 + spanx; temp.Y1 = temp.Y1 + spany; trvTemperture.SelectedNode.Tag = temp; } else if (trvTemperture.SelectedNode.Tag.ToString() == "TempertureEditor.Element.ClsImg") { ClsImg temp = (ClsImg)trvTemperture.SelectedNode.Tag; temp.X = temp.X + spanx; temp.Y = temp.Y + spany; trvTemperture.SelectedNode.Tag = temp; } this.propertyGrid1.SelectedObject = trvTemperture.SelectedNode.Tag; } } catch { } p1.X = e.X; p1.Y = e.Y; this.picTemperatureShow.Refresh(); } else { foreach (Page page in cm.Pages) { foreach (ClsDataObj obj in page.Objs) { //if(obj.Typename== "TempertureEditor.Element.ClsLinedata") object objtype = cm.GetVDataSetByName(obj.Typename); if (objtype == null) { continue; } if (objtype.ToString() == "TempertureEditor.Element.ClsLinedata") { ClsLinedata lindedata = (ClsLinedata)objtype; ClsSymbol symbol = cm.getClsSymbolByName(lindedata.Symbolname); if (symbol != null) { Rectangle rc = new Rectangle((int)obj.X, (int)obj.Y, Convert.ToInt32(symbol.fontsize) + symbol.cx, Convert.ToInt32(symbol.fontsize) + symbol.cy); if (rc.Contains(e.X, e.Y)) { _strTip = obj.Val.ToString(); break; } } } } } picTemperatureShow.Refresh(); } }
/// <summary> /// 整体调整位置 /// </summary> /// <param name="span_rx"></param> /// <param name="span_ry"></param> /// <param name="isSelectNode"></param> private void AllElementReLocation(int span_rx, int span_ry, bool isSelectNode) { try { foreach (TreeNode tn in trvTemperture.Nodes) { foreach (TreeNode tnelement in tn.Nodes) { //元素集合 if (isSelectNode) { if (trvTemperture.SelectedNode != null) { if (tnelement.Name != trvTemperture.SelectedNode.Name) { continue; } } else { break; } } if (tn.Name == "element") { if (tnelement.Tag.ToString().Contains("ClsRec")) { ClsRec temp = (ClsRec)tnelement.Tag; Rectangle rec = new Rectangle(temp.Rec.X + span_rx, temp.Rec.Y + span_ry, temp.Rec.Width, temp.Rec.Height); temp.Rec = rec; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); } else if (tnelement.Tag.ToString() == "TempertureEditor.Element.ClsText") { ClsText temp = (ClsText)tnelement.Tag; temp.X1 = temp.X1 + span_rx; temp.Y1 = temp.Y1 + span_ry; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); } else if (tnelement.Tag.ToString() == "TempertureEditor.Element.ClsLine") { ClsLine temp = (ClsLine)tnelement.Tag; temp.X1 = temp.X1 + span_rx; temp.Y1 = temp.Y1 + span_ry; temp.X2 = temp.X2 + span_rx; temp.Y2 = temp.Y2 + span_ry; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); } else if (tnelement.Tag.ToString() == "TempertureEditor.Element.ClsImg") { ClsImg temp = (ClsImg)tnelement.Tag; temp.X = temp.X + span_rx; temp.Y = temp.Y + span_ry; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); } } else if (tn.Name == "vdataset") { if (tnelement.Tag.ToString() == "TempertureEditor.Element.ClsLinedata") { ClsLinedata temp = (ClsLinedata)tnelement.Tag; temp.X = temp.X + span_rx; temp.Y = temp.Y + span_ry; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); //cm.GetTestPages(); } else if (tnelement.Tag.ToString() == "TempertureEditor.Element.ClsTextdata") { ClsTextdata temp = (ClsTextdata)tnelement.Tag; temp.X = temp.X + span_rx; temp.Y = temp.Y + span_ry; tnelement.Tag = temp; cm.UpdateXml(1, tnelement, cm.XmlDoc, trvTemperture); //cm.GetTestPages(); } } } } if (trvTemperture.SelectedNode != null) { propertyGrid1.SelectedObject = trvTemperture.SelectedNode.Tag; } cm.GetTestPages(); this.picTemperatureShow.Refresh(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }