私の心はどういうわけか「エラーのループ」で立ち往生しています。終わりのない試行錯誤でこれ以上時間を無駄にしたくないので、ここで質問します。
次のような Windows フォーム (.NET、C++) があります。ここの簡略化されたバージョンには、RichTextBox、静的および非静的メンバー関数のみがあります。非静的関数 " nonstaticFunc() "から RichTextBox にテキストを追加すると、期待どおりに機能します。
しかし、静的メンバー関数 " staticFunc() "からこれを行うにはどうすればよいでしょうか? 静的関数から非静的関数を呼び出す方法について、このフォーラムで提案されているいくつかのアプローチを試しましたが、どういうわけかこれを行う方法がわかりませんでした。
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1()
{
InitializeComponent();
}
protected:
~Form1()
{
if (components)
{
delete components;
}
}
protected:
private:
System::ComponentModel::Container ^components;
private: System::Windows::Forms::RichTextBox^ myTextBox;
System::VoidInitializeComponent( System::Void )
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
this->myTextBox = (gcnew System::Windows::Forms::RichTextBox());
}
public: System::Void nonstaticFunc( System::Void )
{
this->myTextBox->AppendText( L"Append this...\n" );
}
public: static System::Void staticFunc( System::Void )
{
// How do I AppendText here??
// Not working: this->myTextBox->AppendText( L"Append this...\n" );
}
}
少しずつ助けてくれてありがとう!大好評!