从 C++ 中的面板返回值?

Returning a value from a panel in C++?

假设我有以下内容:

private: System::Int64 panel1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
{
    int x; 
    mouse event gives back the value 5.
    x = 5; 
    return x
}

如何调用面板才能 return 5?有什么办法可以做到吗?谢谢

P.S: 我正在使用 C++/CLI。

我没用过,System::Windows之类的,我觉得你的实际问题是对如何处理事件有些误解。然而...

"How do i call the panel such that it can return 5??"

从你的问题来看,我假设这个函数内联在一些 MyPanel header 的 header 中。 IE。类似于:

class MyPanel{
    // ... //
    private: 
        System::Int64 panel1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
        {
            int x; 
            //mouse event gives back the value 5.
            x = 5; 
            return x
        }
};

此函数在调用时执行 return 5。但是,它是私有的,只能从成员函数(或朋友)中调用。

编辑:阅读更多评论后,我想我知道你的问题是什么.. 此函数的正确 return 类型是 "void" 而不是 "int"。如果您想进一步处理事件,请在另一个函数中执行。例如:

void myEventHandler(int x){
    std::cout << "Button " << x << " was pressed" << std::endl;
}
void panel1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
{
    myEventHandler(5);
}

MouseDown 是按住鼠标时调用的函数。你不调用它,你只是在其中处理你的事件。希望这会有所帮助...