VC++2005类问题,在C#中实现也有同样的问题(在VC.NET专区有100分同样的问题)

swiftding29 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
...全文
89 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧