我正在尝试使用鼠标左键移动我的表单。我有这个:
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 ^。你知道什么是错的吗?
答案 0 :(得分:1)
问题是该方法需要Point
,而你传递的是Point ^
(托管指针Point
- weeee,太多“点”这里......)
答案 1 :(得分:1)
Point是一个值类(虽然不是一个不可变的类)。为什么要在(托管)堆上分配一个?我认为这个功能没有任何理由可以证明这一点。