各位前辈,这代码有错误吗?为什么运行不了,希望指导

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Drawing.Imaging;namespace绘图{publicpartialclassFrm:Form{publicFrm(){InitializeComponent();}stringeditFileName;privateImagetheImage;privateGraphicsig;privatePointstartPoint,oldPoint;boolisDrawing=false;privateColorforeColor=Color.Black;privateColorbackColor=Color.White;privateenumdrawTools{Pen=0,Line,Ellipse,Rectangle,String,Rubber,None};privatedrawToolsdrawTool=drawTools.None;privatevoid新建ToolStripMenuItem_Click(objectsender,EventArgse){Graphicsg=this.CreateGraphics();g.Clear(backColor);toolStrip1.Enabled=true;theImage=newBitmap(this.ClientRectangle.Width,this.ClientRectangle.Height);editFileName="新建文件";this.Text="MyDrawt"+editFileName;ig=Graphics.FromImage(theImage);ig.Clear(backColor);}privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse){OpenFileDialogopenFileDialog=newOpenFileDialog();openFileDialog.Filter="ImageFiles(*.bmp;*.wmf;*.jgp)|*.bmp;*.wmf;*.jgp";openFileDialog.Multiselect=false;if(openFileDialog.ShowDialog()==DialogResult.OK){this.Text="MyDrawt"+openFileDialog.FileName;editFileName=openFileDialog.FileName;theImage=Image.FromFile(openFileDialog.FileName);Graphicsg=this.CreateGraphics();g.DrawImage(theImage,this.ClientRectangle);ig=Graphics.FromImage(theImage);ig.DrawImage(theImage,this.ClientRectangle);toolStrip1.Enabled=true;}}privatevoid保存ToolStripMenuItem_Click(objectsender,EventArgse){SaveFileDialogsaveFileDialog=newSaveFileDialog();saveFileDialog.Filter="图像(*.bmp)*.bmp";saveFileDialog.FileName=editFileName;if(saveFileDialog.ShowDialog()==DialogResult.OK){theImage.Save(saveFileDialog.FileName,ImageFormat.Bmp);}}privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse){ColorDialogcolorDialog=newColorDialog();if(colorDialog.ShowDialog()==DialogResult.OK){foreColor=colorDialog.Color;}}privatevoidFrm_MouseDown(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){if(drawTool==drawTools.String){FrminputBox=newFrm();//Frm_inputBox=newFrm_Text();inputBox.StartPosition=FormStartPosition.CenterParent;if(inputBox.ShowDialog()==DialogResult.OK){Graphicsg=this.CreateGraphics();FonttheFont=this.Font;g.DrawString(inputBox.Text,theFont,newSolidBrush(foreColor),e.X,e.Y);ig.DrawString(inputBox.Text,theFont,newSolidBrush(foreColor),e.X,e.Y);}}elseif((isDrawing=!isDrawing)==true){startPoint=newPoint(e.X,e.Y);oldPoint=newPoint(e.X,e.Y);}}}privatevoidFrm_MouseMove(objectsender,MouseEventArgse){Graphicsg;g=this.CreateGraphics();if(isDrawing){switch(drawTool){casedrawTools.None:break;casedrawTools.Pen:g.DrawLine(newPen(foreColor,1),oldPoint,newPoint(e.X,e.Y));ig.DrawLine(newPen(foreColor,1),oldPoint,newPoint(e.X,e.Y));oldPoint.X=e.X;oldPoint.Y=e.Y;break;casedrawTools.Line:this.Frm_Paint(this,newPaintEventArgs(this.CreateGraphics(),this.ClientRectangle));break;casedrawTools.Ellipse:this.Frm_Paint(this,newPaintEventArgs(this.CreateGraphics(),this.ClientRectangle));g.DrawEllipse(newPen(foreColor,1),startPoint.X,startPoint.Y,e.X-startPoint.X,e.Y-startPoint.Y);break;casedrawTools.Rectangle:this.Frm_Paint(this,newPaintEventArgs(this.CreateGraphics(),this.ClientRectangle));g.DrawRectangle(newPen(foreColor,1),startPoint.X,startPoint.Y,e.X-startPoint.X,e.Y-startPoint.Y);break;casedrawTools.String:break;casedrawTools.Rubber:g.DrawLine(newPen(backColor,20),oldPoint,newPoint(e.X,e.Y));;ig.DrawLine(newPen(backColor,20),oldPoint,newPoint(e.X,e.Y));oldPoint.X=e.X;oldPoint.Y=e.Y;break;}}}privatevoidrubber_Click(objectsender,EventArgse){drawTool=drawTools.Rubber;}privatevoidtext_Click(objectsender,EventArgse){drawTool=drawTools.String;}privatevoidrectangle_Click(objectsender,EventArgse){drawTool=drawTools.Rectangle;}privatevoidline_Click(objectsender,EventArgse){drawTool=drawTools.Line;}privatevoidpen_Click(objectsender,EventArgse){drawTool=drawTools.Pen;}privatevoidFrm_MouseUp(objectsender,MouseEventArgse){isDrawing=false;switch(drawTool){casedrawTools.Line:ig.DrawLine(newPen(foreColor,1),startPoint,newPoint(e.X,e.Y));break;casedrawTools.Ellipse:ig.DrawEllipse(newPen(foreColor,1),startPoint.X,startPoint.Y,e.X-startPoint.X,e.Y-startPoint.Y);break;casedrawTools.Rectangle:ig.DrawRectangle(newPen(foreColor,1),startPoint.X,startPoint.Y,e.X-startPoint.X,e.Y-startPoint.Y);break;}}privatevoidFrm_Paint(objectsender,PaintEventArgse){Graphicsg=this.CreateGraphics();if(theImage!=null){g.Clear(Color.White);g.DrawImage(theImage,this.ClientRectangle);}}privatevoidFrm_SizeChanged(objectsender,EventArgse){this.Frm_Paint(this,newPaintEventArgs(this.CreateGraphics(),this.ClientRectangle));}}}

解决方案

解决方案二:
由于鼠标滑动,可能会先执行MouseMove事件;单步执行MouseMove事件吧;看看是不是哪里的问题
解决方案三:
你需要用一个数据结构存储画图的数据,否则Paint上去的东西窗体被覆盖就会擦掉了。

时间: 2024-09-30 22:39:14

各位前辈,这代码有错误吗?为什么运行不了,希望指导的相关文章

YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序

1.如果发现yuidoc命令用不了,那就重装nodejs吧    昨天不知道是清扫电脑的原因,yuidoc命令用不了(命令不存在),也没有找到好的解决方法,怒重装YUIDoc也不行.最后想了想,怒重装了nodejs,再装回YUIDoc,发现又可以了,原因还没找到. 2.YUIDoc的theme中的simple模板,sidebar.handlebar有写错.    里面属性遍历的properties被写成了events 3.YUIDoc example代码高亮错误的解决方法   使用过YUIDoc

wallpaper engine安装不了出现代码0xc000012f错误怎么解决

  wallpaper engine安装不了出现代码0xc000012f错误怎么解决?如果从STEAM上打开会显示运行中,但一秒不到就会显示同步中,接着就自动闪退了,再次打开还是一样.如果你从游戏目录打开它又提示如下图. 出现这个问题的原因是玩家的系统缺失msvcp12.dll,只要重新下载并放入系统文件夹就可以了. 下载地址:http://www.cr173.com/soft/393064.html

wallpaper engine安装不了出现代码0xc000012f错误怎么办

  wallpaper engine安装不了出现代码0xc000012f错误的解决方法,希望能帮到大家! 解决办法: 如果从STEAM上打开会显示运行中,但一秒不到就会显示同步中,接着就自动闪退了,再次打开还是一样.如果你从游戏目录打开它又提示如下图. 出现这个问题的原因是玩家的系统缺失msvcp12.dll,只要重新下载并放入系统文件夹就可以了. 下载地址:http://www.cr173.com/soft/393064.html

python-flask文档中教程步骤四代码执行错误

问题描述 flask文档中教程步骤四代码执行错误 按照说的执行之后 解决方案 看你的文档,哪里来的get_db函数,前几章有没有交代

android 中导入数据库,代码一处错误。请大神帮我看看

问题描述 android 中导入数据库,代码一处错误.请大神帮我看看 解决方案 首先你要确定这个cothinkganbu这个文件在哪儿呢,如果你放在了assets里面那就不是这样调用获取资源了,红线处说明的是找不到这个资源,所以你检查一下看是什么情况. 解决方案二: 清理一下工程看看.... 解决方案三: 请大神帮我看看这段代码

c-使用VC++建立一个CDib类库 但无法生成 代码与错误如下 求指导

问题描述 使用VC++建立一个CDib类库 但无法生成 代码与错误如下 求指导 /*声明*/ #ifndef _CDIB_H #define _CDIB_H class CDib :public CObject{ //父类为CObject public: RGBQUAD*m_pRGB; BYTE*m_pData; UINT m_numberOfColors; BOOL m_valid; BITMAPFILEHEADER bitmapFileHeader; BITMAPINFOHEADER *m_

net-.NET网站问题,页面代码提示错误

问题描述 .NET网站问题,页面代码提示错误 我在本地开发的时候是可以的,发布到服务器就这样了为什么会提示 ""当前上下文中不存在名称"LinkLogList"啊? 一下为后置代码: 一下为页面代码: 打开页面之后就这样了: 解决方案 重新部署下,如果你的bll是另外的项目,确保这些dll拷贝到服务器上并且在web.config中正确注册.

帮忙看下代码,提示错误:赋值 -- 它是只读的 代码哪里错了?

问题描述 帮忙看下代码,提示错误:赋值--它是只读的代码哪里错了?publicstringgetFileName{get{getFileName="";try{if(((Request==null)==false)){stringwk=Request.Url.LocalPath.ToString();intpos=wk.LastIndexOf("/");if((pos!=-1)){wk=wk.Substring(pos+1);}returngetFileName=w

vc++ 6.0 能自动查找自己编写的程序代码的错误吗??怎么设置,回答最好带着张图片

问题描述 vc++ 6.0 能自动查找自己编写的程序代码的错误吗??怎么设置,回答最好带着张图片 解决方案 程序的错误有两种,一个是语法错误,一个是语义错误. 我们用人类语言打比方: 老虎山羊吃了. 这句话语法错误,主语后面接谓语,谓语后面接宾语,不能颠倒. 一年有356天. 这句话是语义错误,在语法上没有问题,但是显然一年不是356天而是365/366天. 编译器只能发现语法错误.在你的图上,双击最下面那个窗格中的错误信息,可以定位到错误的行,你根据提示修改就可以了. 编译器不能发现语义错误,

typedef struct-求大神找到下面代码中的代码的错误,并改正!

问题描述 求大神找到下面代码中的代码的错误,并改正! #include #include #include typedef struct { int a; int b; } DOUBLE_INT, *Double_int; Double_int a[4]; int main() { int i; for ( i=0; i < 4; i++) { a[i]->a = (i+1); a[i]->b = (i+1)<<1; } for ( i=0; i < 4; i++) {