您的位置:程序门 -> .net技术 -> c#



vc++2005类问题,在c#中实现也有同样的问题(在vc.net专区有100分同样的问题)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vc++2005类问题,在c#中实现也有同样的问题(在vc.net专区有100分同样的问题)
发表于: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


快速检索

最新资讯
热门点击