none
vc++.net 如何从窗体二访问窗体一中的函数. RRS feed

  • 问题

  • 我窗体一中有VOID XX()这个函数,单击窗体一中的BUTTON1显示出窗体二,我怎么在单击窗体二中的BTUUON访问窗体一中的VOID XX()函数?

    窗体一代码:

    #include "窗体二.h"

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         窗体二^ j = gcnew 窗体二;
         j->ShowDialog();     //显示窗体二
        }

    VOID XX()

    {

        xxxxx

        xxxxx

    }

    窗体二代码:

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

                这里怎么写?

               因为在窗体一已经#include "窗体二.h"了,如果在这里在#include "窗体一.h",就会报错.

        }

    2010年10月31日 12:56

答案

  • 窗体二^ j = gcnew 窗体二;

    j->Event1+=new EventHandler(j,&窗体1::EventHandler1);

    在窗体2的声明中加一个事件,这样窗体2需要通知其他窗口的时候就可以触发这个事件。

    关于C++/CLI的事件语法,可以参考http://msdn.microsoft.com/en-us/library/ms235237(v=VS.100).aspx



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年11月1日 19:25
    版主

全部回复

  • 需要在第一个窗口中添加一个xx()函数的代理。然后在第二个窗口raise一个事件触发这个函数。
    麻烦把正确答案设为解答。
    2010年11月1日 5:23
    版主
  • 我是个初学者,没看明白你的意思.

    2010年11月1日 10:26
  • 窗体二^ j = gcnew 窗体二;

    j->Event1+=new EventHandler(j,&窗体1::EventHandler1);

    在窗体2的声明中加一个事件,这样窗体2需要通知其他窗口的时候就可以触发这个事件。

    关于C++/CLI的事件语法,可以参考http://msdn.microsoft.com/en-us/library/ms235237(v=VS.100).aspx



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年11月1日 19:25
    版主