C++ cli 系统::对象^sender

C++ cli 系统::对象^sender,c++-cli,C++ Cli,我有一个面板,上面有一张图片。默认情况下,panel1是pictureBox1的父级。图1的位置30,30。我在pictureBox1上放置了4个标签,默认情况下它们的坐标由panel1确定。对于我指定的一个事件的所有标签,所有事件都已更改。使用Form1_加载事件(或在构造函数中),我将pictureBox1指定为所有标签的父标签,如label1->parent=pictureBox1。。。这将自动初始化所有\u ParentChanged事件。在这个例子中,我改变了所有标签的坐标,+40px

我有一个面板,上面有一张图片。默认情况下,panel1是pictureBox1的父级。图1的位置30,30。我在pictureBox1上放置了4个标签,默认情况下它们的坐标由panel1确定。对于我指定的一个事件的所有标签,所有事件都已更改。使用Form1_加载事件(或在构造函数中),我将pictureBox1指定为所有标签的父标签,如label1->parent=pictureBox1。。。这将自动初始化所有\u ParentChanged事件。在这个例子中,我改变了所有标签的坐标,+40pxls,+40pxls。我是这样做的:

label1->Location = Point(label1->Left + 40, label1->Top + 40);
label2->Location = Point(label2->Left + 40, label2->Top + 40);
label3->Location = Point(label3->Left + 40, label3->Top + 40);
label4->Location = Point(label4->Left + 40, label4->Top + 40);`
但是我猜我有100个标签。为他们所有人写一行字是一堆垃圾。所以我想问的是,我可以使用System::Object的发送者用一行代码来完成它吗,比如:

sender->Location = Point(sender->Left + 40, sender->Top + 40);
我使用了这段代码,但它说Location不是System::Object的成员。请帮助我的人。提前谢谢。

是的,您可以这样做:

Label^ senderLabel = safe_cast<Label^>(sender);
senderLabel->Location = Point(senderLabel->Left + 40, senderLabel->Top + 40);
Label^senderLabel=safe\u cast(发送方);
senderLabel->Location=点(senderLabel->Left+40,senderLabel->Top+40);

但是
ParentChanged
事件似乎不是这样做的地方。为什么设计师中的所有位置都错了?你能用你所有的标签做一个数组,这样你就可以对多个标签做任何事情了(为整个数组设置
父项
,没问题。调整位置,没问题)

你的标题根本没有描述你的问题。