| 发表于:2007-01-03 10:07:49 楼主 |
在窗体form1类里面加入了binarytree类里面有个binarytreenode类里面有个 (控件)picturebox ^picturebox;//显示数据的控件 public ref class form1 : public system::windows::forms::form//窗体类 { public: //二叉树类 ref class binarytree { //树结点类 ref class binarytreenode { public: //成员 string ^data;//存储结点的数据 picturebox ^picturebox;//显示数据的控件 binarytreenode ^left, ^right;//链接其它结点的指针 //方法 binarytreenode(system::windows::forms::mouseeventargs^ e) { picturebox = gcnew picturebox(); picturebox-> location = point(e-> x-(picturebox-> width/2),e-> y-(picturebox-> height/2));//设置picturebox位置 image ^image = image::fromfile( "boxon.jpg "); picturebox-> backgroundimage = image;//设置picturebox背景图片 picturebox-> backgroundimagelayout = imagelayout::stretch;//设置picturebox贴图方式 } }; public: //成员 binarytreenode ^root; //方法 binarytree(system::windows::forms::mouseeventargs^ e) { root = gcnew binarytreenode(e);//初始化时创建一个树结点对象 } }; form1(void) { initializecomponent(); // //todo: 在此处添加构造函数代码 // } //窗体的mousedoubleclick事件处理函数 private: system::void on_mousedoubleclick(system::object^ sender, system::windows::forms::mouseeventargs^ e) { binarytree ^binarytree = gcnew binarytree(e);//双击窗体产生一个二叉树类和一个树结点 this-> controls-> add( binarytree-> root-> picturebox ); } 双击窗体时产生一个binarytree的实例binarytree同时调用binarytree的构造函数产生一个(控件)picturebox 的实例控件)picturebox .编译没有错误,但是运行双击时中断 "引发异常 " :未处理的“system.fieldaccessexception”类型的异常出现在 system.windows.forms.dll 中。其他信息: binarytreenode.picturebox 请问怎么解决,但是同样功能的vb2005代码为什么可以使用?(请问怎么解决?) vb代码: public class btree public value as string public withevents rect as picturebox public left as btree = nothing public right as btree = nothing public sub new(byval e as system.windows.forms.mouseeventargs) '带参数的构造函数 rect = new picturebox rect.backcolor = color.blue rect.left = e.x - rect.width / 2 rect.top = e.y - rect.height / 2 form1.controls.add(rect) end sub |
|
|
|
|