转换点到点^

时间:2013-05-30 12:16:21

标签: .net winforms c++-cli system.drawing

我正在尝试使用鼠标左键移动我的表单。我有这个:

if(e->Button == Windows::Forms::MouseButtons::Left)
{
    Point^ mousePos = gcnew Point();
    mousePos = Control::MousePosition;
        mousePos->Offset(mouse_offset->X,mouse_offset->Y);
    Location = mousePos;
}

代码似乎没问题,但是视觉返回错误:

  

错误C2664:'无效   系统:视窗:形式:控制::位置::设置(系统::图纸::点)”   :无法将参数1从'System :: Drawing :: Point ^'转换为   '系统::绘制::点'

我不明白 - 我创建了变量mousePos作为Point ^。你知道什么是错的吗?

2 个答案:

答案 0 :(得分:1)

问题是该方法需要Point,而你传递的是Point ^(托管指针Point - weeee,太多“点”这里......)

答案 1 :(得分:1)

Point是一个值类(虽然不是一个不可变的类)。为什么要在(托管)堆上分配一个?我认为这个功能没有任何理由可以证明这一点。