0

我需要ToolStripMenuItem在. Enabled_ 我尝试在互联网上搜索此内容,但 C++ 没有,所有答案都适用于 C#。ChildC++ .NET

我试试这个但不工作(menu_openToolStripMenuItem):

this->MdiParent->Controls["menu_open"]->Enabled=true;

我尝试:

(Form1)this->MdiParent->Controls["menu_open"]->Enabled=true;

((Form1)this->MdiParent)->Controls["menu_open"]->Enabled=true;

但不要找到Form1那是父母。请帮忙。

我试试这个:添加行

ref class Form1;

在子窗体和行的命名空间内

 Form1^ parent;

public ref class Child...里面 现在我有一个父表单的对象,我尝试:

parent->Controls["menu_open"]->Enabled = true;

但我有这个错误:

   use of undefined type 'DataLogger::Form1'
   left of '->Controls' must point to class/struct/union/generic type
   left of '->Enabled' must point to class/struct/union/generic type
   use of undefined type 'DataLogger::Form1'       
   left of '->Controls' must point to class/struct/union/generic type
   left of '->Enabled' must point to class/struct/union/generic type
4

1 回答 1

0

如果任何人都会有同样的问题,我找到了答案。您将需要使用MdiChildActivate父表单的事件。此事件将在创建孩子和关闭 cild 时出现,要解决此问题,请使用以下代码:

在 0 上设置的函数之外创建一个私有变量:

private: static int closeChild = 0;

private: System::Void Form1_MdiChildActivate(System::Object^ sender, System::EventArgs^ e)使用此代码:

closeChild++;
String ^ childName = this->MdiChildren[0]->Text;

if(closeChild == 2)
   menu_open->Enabled=true;

closeChild将是 2 关闭。并且不要忘记closeChild在创建新孩子时重置为 0,因为closeChild它将增加到 3,等等。

祝你好运 !

于 2013-08-08T11:56:41.153 回答