未将对象引用设置到对象的实例。

问题描述

Pointtemp=newPoint();for(intk=0;k<picbox.Width/5-1;k++){temp=ptlist[k+1];ptlist[k]=newPoint(temp.X-5,temp.Y);}出线错误:未将对象引用设置到对象的实例。是怎么回事儿?

解决方案

解决方案二:
if(ptlist==null)就别执行了
解决方案三:
先检查ptlist是否为null,在执行
解决方案四:
引用1楼net_lover的回复:

if(ptlist==null)就别执行了

改了之后又报下一句错,未将对象引用设置到对象的实例
解决方案五:
该回复于2011-12-06 13:18:10被版主删除
解决方案六:
还是有这个错误,谁能帮帮我,急……………………
解决方案七:
还是从根上分析吧。也许,你定义的数组太小,循环变量太大。你也不贴出代码,光那两行,谁知道哪里错了。
解决方案八:
你看一下报错那一步是ptlist里面哪个对象
解决方案九:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Drawing;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{classdraw{publicBitmapmybitmap;//用于双缓冲的位图,和画布等大Randomrm=newRandom();//随机数产生器publicvoidDrawLineS(Colorcolor,floatXmax,floatYmax,PictureBoxpicbox,Point[]ptlist){mybitmap=newBitmap(picbox.Width,picbox.Height);//设定位图大小Graphicsdoublebufferg=Graphics.FromImage(mybitmap);//从位图上获取“画布”doublebufferg.Clear(Color.White);//用背景色刷新//pictureBox1填充为白色,便于显示图像500*300Rectanglerect=newRectangle(0,0,picbox.Width,picbox.Height);doublebufferg.FillRectangle(newSolidBrush(Color.White),rect);//画X和Y轴DrawXY(refdoublebufferg,picbox);//X轴上的刻度SetYAxis(refdoublebufferg,picbox,Ymax);//Y轴上的刻度SetXAxis(refdoublebufferg,picbox,Xmax);//要显示的实时曲线部分Pointtemp=newPoint();for(intk=0;k<picbox.Width/5-1;k++){temp=ptlist[k+1];ptlist[k]=newPoint(temp.X-5,temp.Y);}Pointlastpt=newPoint();lastpt.X=picbox.Width;lastpt.Y=picbox.Height;//lastpt.Y=rm.Next(DateTime.Now.Millisecond)%picbox.Height;ptlist[picbox.Width/5-1]=lastpt;doublebufferg.DrawLines(newPen(color,1),ptlist);//将缓冲中的位图绘制到我们的窗体上Graphicsg1=picbox.CreateGraphics();//创建PictureBox窗体的画布g1.Clear(Color.White);g1.DrawImage(mybitmap,0,0);}//完成X轴和Y轴的基本部分publicvoidDrawXY(refGraphicsg,PictureBoxpicbox){Penpen=newPen(Color.Black,2);//画笔SolidBrushsb=newSolidBrush(Color.Black);//话刷//X轴的箭头,实际上是绘制了一个三角形Point[]xpts=newPoint[3]{newPoint(picbox.Width-35,picbox.Height-32),newPoint(picbox.Width-35,picbox.Height-28),newPoint(picbox.Width-30,picbox.Height-30)};g.DrawLine(pen,30,picbox.Height-30,picbox.Width-30,picbox.Height-30);g.DrawPolygon(pen,xpts);g.DrawString("X",newFont("宋体",9),sb,picbox.Width-25,picbox.Height-35);//Y轴的箭头,实际上是绘制了一个三角形Point[]ypts=newPoint[3]{newPoint(28,35),newPoint(30,30),newPoint(32,35)};g.DrawLine(pen,30,picbox.Height-30,30,30);g.DrawPolygon(pen,ypts);g.DrawString("Y",newFont("宋体",9),sb,15,30);}//绘制Y轴上的刻度publicvoidSetYAxis(refGraphicsg,PictureBoxpicbox,floatYMAX){Penp1=newPen(Color.Goldenrod,1);Penp2=newPen(Color.Black,2);SolidBrushsb=newSolidBrush(Color.Black);floatykedu=YMAX/200;//给定的最大刻度与实际像素的比例关系//第一个刻度的两个端点floatxl=27,yl=picbox.Height-30,xr=33,yr=picbox.Height-30;for(intj=0;j<picbox.Height-60;j+=10){if(j%50==0)//一个大的刻度,黑色,每隔50像素一个{g.DrawLine(p2,xl,yl-j,xr,yl-j);//刻度线stringtempy=(j*ykedu).ToString();g.DrawString(tempy,newFont("宋体",8),sb,xl-20,yl-j-5);}else//小刻度,金黄色,10像素一个{g.DrawLine(p1,xl,yl-j,xr,yl-j);}}}//绘制y轴上的刻度publicvoidSetXAxis(refGraphicsg,PictureBoxpicbox,floatXMAX){Penp1=newPen(Color.Goldenrod,1);Penp2=newPen(Color.Black,2);SolidBrushsb=newSolidBrush(Color.Black);floatxkedu=XMAX/400;floatxt=30,yt=picbox.Height-33,xb=30,yb=picbox.Height-27;for(inti=0;i<picbox.Width-60;i+=10){if(i%50==0){g.DrawLine(p2,xt+i,yt,xb+i,yb);stringtempx=(i*xkedu).ToString();g.DrawString(tempx,newFont("宋体",8),sb,xt+i-7,picbox.Height-25);}else{g.DrawLine(p1,xt+i,yt,xb+i,yb);}}}}}以上是一个画图类draw.cs下面是我窗体中的代码,点击按钮出线一条实时曲线usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsFormsApplication1{publicpartialclassForm8:Form{publicForm8(){InitializeComponent();}publicPoint[]ptlist;//存放点的数组Randomrm=newRandom();//随机数产生器Timermytimer=newTimer();//定时器privatevoidForm8_Load(objectsender,EventArgse){//设置控件的样式和行为,以减少图像的闪烁this.SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.AllPaintingInWmPaint|ControlStyles.UserPaint,true);this.SetStyle(ControlStyles.ResizeRedraw,true);this.UpdateStyles();//实例化数组ptlist=newPoint[this.pictureBox5.Width/5];Pointpt;for(inti=0;i<this.pictureBox5.Width/5;i++){pt=newPoint();pt.X=5*i;//5个像素绘制一个点//pt.Y=rm.Next()%this.pictureBox1.Height;if(5*i<150)pt.Y=80;elsept.Y=80+(5*i-150)*1/2;ptlist[i]=pt;}}drawdrawtest=newdraw();//创建类draw的实例privatevoidtimer1_Tick(objectsender,EventArgse){//调用绘图函数,这里的参数可以根据不同的测量给定不同的实参drawtest.DrawLineS(Color.Blue,32000,450,pictureBox1,ptlist);}privatevoidbutton1_Click(objectsender,EventArgse){//动态添加一个定时器this.timer1.Enabled=true;//可以使用this.timer1.Interval=1000;//定时时间为1000毫秒this.timer1.Tick+=newSystem.EventHandler(this.timer1_Tick);this.timer1.Start();//启动定时器}}}求高手给我看看哪儿错了……
解决方案十:
你调试看一下哪次循环除了问题呗
解决方案十一:
我运行了,在一个project里可以运行没问题,但是我把代码加到另一个大的project里面就会出现这个错误,我也不知道是怎么回事……急死了……………………………………
解决方案十二:
自己学着调试,在出错的地方加断点,然后监视查看哪个变量为null
解决方案十三:
ptlist里面的内容出了问题你在循环的地方设个断点看看检查是哪个对象为null
解决方案十四:
该回复于2011-12-06 16:01:39被版主删除

时间: 2024-11-19 01:15:52

未将对象引用设置到对象的实例。的相关文章

错误解决:System.NullReferenceException: 未将对象引用设置到对象的实例

在ASP.NET开发中,遇到System.NullReferenceException: 未将对象引用设置到对象的实例的错误提示,解决方法如下:       (1)所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用datagrid或gridview或datalist等数据控件时出现. (2)控件名称与codebehind里面的没有对应 (3)未用new初始化对象 (4)在程序中所引用的控件不存在 解决方法: (1)使用try..catch...finally捕捉错误

在win7 64位下出现异常:未将对象引用设置到对象的实例

  您好,win7的确有这个问题,已经反馈给作者,其实很多.net写的应用会出现这样的错误,然后无视它的话,能继续用就好了,这个似乎不行. 电脑模拟乐器软件1.20 绿色版"在win7 64位下出现异常:未将对象引用设置到对象的实例.具体情况如下:‍ ************** 异常文本 ************** ************** 已加载的程序集 ************** mscorlib 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.5477 (W

链接数据库时,对文件操作造成脚本异常:未将对象引用设置到对象的实例,感觉是代码出了问题

问题描述 链接数据库时,对文件操作造成脚本异常:未将对象引用设置到对象的实例,感觉是代码出了问题 第一次对文件进行操作,只是简单的添加照片而已,不知道问题出在那里,当我把操作文件那块代码注释后,其他功能都是正常的,代码如下: string fileExtesion = Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower(); if (FileUpload1.HasFile) { string path = Server.MapPa

图片-使用httpcontext.current.session时出错,未将对象引用设置到对象的实例。

问题描述 使用httpcontext.current.session时出错,未将对象引用设置到对象的实例.

上传服务器后出现System.NullReferenceException: 未将对象引用设置到对象的实例。

问题描述 如题[NullReferenceException:未将对象引用设置到对象的实例.]TopWin.WebUI.game._3jymdd.Page_Load(Objectsender,EventArgse)ine:topwincmswebuigame3jymdd.aspx.cs:80System.Web.UI.Control.OnLoad(EventArgse)+67System.Web.UI.Control.LoadRecursive()+35System.Web.UI.Page.Pr

VC 访问web service 出错!服务无法处理请求 未将对象引用设置到对象的实例

问题描述 ISoapSerializerPtrSerializer;ISoapReaderPtrReader;ISoapConnectorPtrConnector;//ConnecttotheserviceConnector.CreateInstance(__uuidof(HttpConnector));//WS服务器地址Connector->Property["EndPointURL"]="http://www.webxml.com.cn/webservices/qq

未将对象引用设置到对象的实例。哪位能帮帮忙?已经找了几天还没找到问题

问题描述 "/xinwenfabu"应用程序中的服务器错误.--------------------------------------------------------------------------------未将对象引用设置到对象的实例.说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例.源错误:行77:

集合类操作:未将对象引用设置到对象的实例

以List为例,具体错误信息如下: 未处理 System.NullReferenceException Message=未将对象引用设置到对象的实例. Source=TestSet StackTrace: 在 TestSet.Form1.button1_Click(Object sender, EventArgs e) 位置 E:\WorkSpace\VS2010\TestSet\TestSet\Form1.cs:行号 34 在 System.Windows.Forms.Control.OnCl

c#-C#交叉数组出现未将对象引用设置到对象的实例 问题

问题描述 C#交叉数组出现未将对象引用设置到对象的实例 问题 代码其实很简单,创建一个C#窗体应用程序,运行时输入"妈妈和小女孩在动物园看熊猫",但总是报错,却又解决不了.求解 ```using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions;

RadioButtonList赋值操作时报&amp;amp;quot;未将对象引用设置到对象的实例&amp;amp;quot;的错。

问题描述 我在程序中:RadioButtonList_ipsnsex.Items.FindByValue(ds.Tables["Insurance"].Rows[0]["ipsn_sex"].ToString()).Selected=true;code]报错信息为:"未将对象引用设置到对象的实例"但是[code=C#]RadioButtonList_ipsnsex.Items.FindByValue("男"].ToString