الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود لرسم line بالماوس ومحتاج لشرحها

بدأه almnaf في 18 فبراير 2010 · 1 رد · 462 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Data;
using System.Windows.Forms;


namespace nmLineRectangle
{
   public class clsLineRectangle
   {
      //Rectangle SelectRect = new Rectangle();
      Point ps = new Point();
      Point pe = new Point();

      public clsLineRectangle() 
      {

      }

      public void clsLineRectangle_OnMouseDown(Object sender, MouseEventArgs e) 
      {
         //SelectRect.Width = 0;
         //SelectRect.Height = 0;
         //SelectRect.X = e.X;
         //SelectRect.Y = e.Y;

         ps.X = e.X;
         ps.Y = e.Y;
         pe = ps;
      }

      public void clsLineRectangle_OnMouseMove(Object sender, MouseEventArgs e) 
      {
         if (e.Button==MouseButtons.Left) 
         {           
       1.     Form thisform = (Form)sender;

            // First DrawReversible to toggle to the background color
            // Second DrawReversible to toggle to the specified color
            if (((RadioButton)thisform.Controls[0]).Checked) 
            {
             2.  ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
               pe = new Point(e.X, e.Y);
            3.   ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
            } 
            //else 
            //{
               //ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
               //SelectRect.Width = e.X - SelectRect.X;
               //SelectRect.Height = e.Y - SelectRect.Y;
               //ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
            //}
         }
      }

      public void clsLineRectangle_OnMouseUp(Object sender, MouseEventArgs e) 
      {
         Form thisform = (Form)sender;
         Graphics g = thisform.CreateGraphics();
         Pen p = new Pen(Color.Blue, 2);
         if (((RadioButton)thisform.Controls[0]).Checked) 
         {
            ControlPaint.DrawReversibleLine(thisform.PointToScreen(ps), thisform.PointToScreen(pe), Color.Black);
            g.DrawLine(p, ps, pe);
         } 
         //else 
         //{
            //ControlPaint.DrawReversibleFrame(thisform.RectangleToScreen(SelectRect), Color.Black, FrameStyle.Dashed);
            //g.DrawRectangle(p, SelectRect);
         //}
         //g.Dispose();
      }
   }

   public class Form1 : System.Windows.Forms.Form
   {
      private RadioButton rdoLine;
      private RadioButton rdoRect;

4.      [STAThread]
      public static void Main() 
      {
      5.   Application.Run(new Form1());
      }

      public Form1()
      {
         clsLineRectangle im = new clsLineRectangle();
         this.MouseDown += new MouseEventHandler(im.clsLineRectangle_OnMouseDown);
         this.MouseMove += new MouseEventHandler(im.clsLineRectangle_OnMouseMove);
         this.MouseUp += new MouseEventHandler(im.clsLineRectangle_OnMouseUp);

         rdoLine = new RadioButton();
         rdoLine.Name = "rdoLine";
         rdoLine.Location = new Point(10,10);
         rdoLine.Text = "Line";

         //rdoRect = new RadioButton();
         //rdoRect.Name = "rdoRect";
         //rdoRect.Location = new Point(10,40);         
         //rdoRect.Text = "Rectangle";

6.         this.Controls.AddRange(new Control[] { rdoLine, rdoRect });
      }

      private void rdo_OnClick(Object sender, EventArgs e) 
      {
         if (rdoLine.Checked) 
         {
            rdoRect.Checked = true;
            rdoLine.Checked = false;
         }
         else 
         {
            rdoRect.Checked = false;
            rdoLine.Checked = true;
         }
      }
   }
}

في حاجات فاهمها وفي حاجات لأ بس اللي عليها ارقام هي اللي مش فاهمها

واتمني انكم تفيدوني

تم تعديل هذه المشاركة بواسطة _- محمد نور -_ في 18 فبراير 2010 في 09:19

#2

حاول أن تضع المشروع فى ملف مرفق و لا ترفق الملف التنفيذى

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…