当前位置:编程学习 > C#/ASP.NET >>

C#入门学习-----简单画图程序

通过本实例了解如何在窗体上绘制各种图形,如矩形、椭圆、线条、文字等。运行效果如下:

 \

实现过程:

(1) 新建窗体应用程序

(2) 添加一个MenuScrip控件;添加一个ToolScrip控件。

在ToolScrip控件中对每个单元,要将DisplayStyle属性改为Text

 \

(3)程序代码。

1、新建菜单事件主要用白色清除窗体的背景,从而实现“文件新建”功能

[csharp]
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e) 
      { 
          Graphics g = this.CreateGraphics(); 
          g.Clear(backColor); 
          toolStrip1.Enabled = true; 
          //创建一个Bitmap 
          theImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height); 
          editFileName = "新建文件"; 
          //修改窗口标题 
          this.Text = "MyDraw\t" + editFileName; 
          ig = Graphics.FromImage(theImage); 
          ig.Clear(backColor); 
      } 

 

2、打开事件用于打开“打开文件”对话框,并选择相应的图片,将图片绘制到窗体上.

 

 

[csharp]
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e) 
      { 
          openFileDialog1.Multiselect = false; 
          if (openFileDialog1.ShowDialog() == DialogResult.OK) 
          { 
              //修改窗口标题 
              this.Text = "MyDraw\t" + openFileDialog1.FileName; 
              editFileName = openFileDialog1.FileName; 
              theImage = Image.FromFile(openFileDialog1.FileName); 
              Graphics g = this.CreateGraphics(); 
              g.DrawImage(theImage, this.ClientRectangle); 
              ig = Graphics.FromImage(theImage); 
              ig.DrawImage(theImage, this.ClientRectangle); 
              //ToolBar可以使用了 
              toolStrip1.Enabled = true; 
          } 
      } 


(3) 保存菜单项的Click事件用于将窗体背景保存为BMP格式的图片

[csharp]
private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) 
        { 
            saveFileDialog1.Filter = "图像(*.bmp)|*.bmp"; 
            saveFileDialog1.FileName = editFileName; 
            if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
            { 
                theImage.Save(saveFileDialog1.FileName, ImageFormat.Bmp); 
                this.Text = "MyDraw\t" + saveFileDialog1.FileName; 
                editFileName = saveFileDialog1.FileName; 
            } 
        } 

(4) 在Paint事件中将Image中保存的图像,绘制出来

[csharp]
private void Form1_Paint(object sender, PaintEventArgs e) 
       { 
           //将Image中保存的图像,绘制出来 
           Graphics g = this.CreateGraphics(); 
           if (theImage != null) 
           { 
               g.Clear(Color.White); 
               g.DrawImage(theImage, this.ClientRectangle); 
           } 
       } 

 (5)添加Frm_Text.cs文字输入框。

    添加一个Window窗体,取名为Frm_Text,然后对窗体的属性修改:

把FormBorderStyle属性改为 None;

 \

把Modifiers的属性改为 Public

 

(6) 在窗体的MouseDown事件中,如果当前绘制的是字符串,在鼠标的当前位置显示文本框;如果绘制的是图开,设置图形的起始位置。

[cpp]
private void Frm_Main_MouseDown(object sender, MouseEventArgs e) 
      { 
          if (e.Button == MouseButtons.Left) 
          { 
              //如果选择文字输入,则打开strInput窗体 
              if (drawTool == drawTools.String) 
              { 
                  Frm_Text inputBox = new Frm_Text(); 
                  inputBox.StartPosition = FormStartPosition.CenterParent; 
                  if (inputBox.ShowDialog() == DialogResult.OK) 
                  { 
                      Graphics g = this.CreateGraphics(); 
                      Font theFont = this.Fon

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,