0

我正在尝试将此选项卡式浏览器从 Visual Basic 转换为 C++。我正在尝试从 Form1.h 中引用选项卡控件。这是 Form1.h 上的代码:

    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
             String^ title = String::Concat("TabPage ",(tabControl1->TabCount + 1).ToString());
             tab^ newtab = gcnew tab;
             newtab->Show();
             newtab->TopLevel = false;
             newtab->Dock = System::Windows::Forms::DockStyle::Fill;
             TabPage^ myTabPage = gcnew TabPage(title);
             myTabPage->Controls->Add(newtab);
             tabControl1->TabPages->Add(myTabPage);

         }

试图创建另一个选项卡的第二个表单上的代码是这样的:

private: System::Void newTabToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

         tab^ newtab = gcnew tab;
         newtab->Show();
         newtab->TopLevel = false;
         newtab->Dock = System::Windows::Forms::DockStyle::Fill;
         TabPage^ myTabPage = gcnew TabPage();
         myTabPage->Controls->Add(newtab);
         tabControl1->TabPages->Add(myTabPage);
     }

在 Visual Basic 中,只需添加 Form1。像这样开始......:

//Original
tabControl1.TabPages.Add(myTabPage);
//New
Form1.tabControl1.TabPages.Add(myTabPage);

我怎么能在 C++ 中做同样的事情?

4

1 回答 1

1

Visual Basic 提供项目中每个类的默认实例。当您说 时Form1.tabControl1,您实际上是在获取 Form1 的特定全局实例,并访问其上的 tabControl1 字段。

添加一种将 Form1 的实例发送到第二个表单的方法,并使用它代替Form1. 像将 Form1 的实例传递给其构造函数中的第二个表单这样简单的事情可能会成功。

于 2012-04-16T19:27:29.427 回答