2012-04-12 7 views
0

Ich erstelle eine Benutzerkontrollgruppe Unterklasse. Es gibt zwei Radiobuttons. Ich muss Event-Handler für sie erstellen. Ich habe zwei Richtungen zu gehen. Eine besteht darin, Ereignishandler in der Unterklasse zu erstellen und den Ereignishandler eine Konstante in der Unterklasse ändern zu lassen. Ich werde eine Funktion verwenden, um die Unterklassenkonstante in der Oberklasse zu überprüfen. Der andere ist, Ereignishandler in der Oberklasse für die Optionsfelder der Unterklasse zu erstellen. Das folgende ist mein Code für die Methode 1. Hinweis kommentierte ich habe aus zwei Linien (sie sind die Schaffung Event-Handler), weil sie falsch sind, weil sie Fehler erstellen bitte helfenWie legt man einen Event-Handler einer niedrigeren Klasse Radiobutton in einer oberen Klasse?

using namespace System; 
using namespace System::ComponentModel; 
using namespace System::Collections; 
using namespace System::Windows::Forms; 
using namespace System::Data; 
using namespace System::Drawing; 
using namespace System::Collections; 
using namespace System::Collections::Generic; 

#include <stdio.h> 
#include <stdlib.h> 
#using <mscorlib.dll> 

      public ref class temp_groupbox: public GroupBox 
      { 
      public: temp_groupbox(int a, int b, String ^groupboxname){ 

          // Create and initialize a GroupBox and two RadioButton controls. 
          //GroupBox^ groupBox1 = gcnew GroupBox; 
          RadioButton^ radioButton1 = gcnew RadioButton; 
          RadioButton^ radioButton2 = gcnew RadioButton; 

          // Add the RadioButtons to the GroupBox. 
          this->Controls->Add(radioButton1); 
          this->Controls->Add(radioButton2); 

          this->Location = System::Drawing::Point(a, b); 
          this->Size = System::Drawing::Size(500, 100); 
          this->TabIndex = 0; 
          this->TabStop = false; 

          radioButton1->Name = L"radioButton1"; 
          radioButton2->Name = L"radioButton2"; 


          radioButton1->Size = System::Drawing::Size(85, 17); 
          radioButton2->Size = System::Drawing::Size(85, 17); 

          radioButton1->Location = System::Drawing::Point(30, 40); 
          radioButton2->Location = System::Drawing::Point(30, 90); 

          radioButton1->TabIndex = 0; 
          radioButton1->TabStop = true; 

          radioButton2->TabIndex = 1; 
          radioButton2->TabStop = true; 

          radioButton1->UseVisualStyleBackColor = true; 
          radioButton1->CheckedChanged += gcnew System::EventHandler(this, radioButton1_CheckedChanged); 
          radioButton2->UseVisualStyleBackColor = true; 
          radioButton2->CheckedChanged += gcnew System::EventHandler(this, radioButton2_CheckedChanged); 

          this->SuspendLayout(); 
          this->ResumeLayout(false); 
          this->PerformLayout(); 
       } 


      public: RadioButton^ radioButton1; 
      public: RadioButton^ radioButton2; 
      public: int anss; 

      void radioButton1_CheckedChanged(Object^ sender, EventArgs^ e) 
      { 
       anss = 1; 
      } 

      void radioButton2_CheckedChanged(Object^ sender, EventArgs^ e) 
      { 
       anss = 2; 
      } 

      };// end ref class 

enter image description here

Antwort

1

Sie tun haben Methoden radioButton1_CheckedChanged und radioButton2_CheckedChanged definiert?

void radioButton1_CheckedChanged(Object^ sender, EventArgs^ e) 
{ 
} 

void radioButton2_CheckedChanged(Object^ sender, EventArgs^ e) 
{ 
} 

Wenn diese Methoden bereits existieren, listen Sie bitte die Fehlermeldung auf, die Sie bekommen. Es ist schwer herauszufinden, wie man etwas repariert, wenn wir nicht wissen, was falsch ist.


Sie müssen den vollständigen Klassennamen des Verfahrens festlegen, die Sie für einen Delegaten erstellen, und verwenden Sie die & die Adresse zu nehmen.

gcnew System::EventHandler(this, &temp_groupbox::radioButton1_CheckedChanged) 
+0

Danke für Ihren Vorschlag. Sie existieren nicht. Ich füge sie hinzu, aber es gibt immer noch Fehler. Ich habe den obigen Code aktualisiert. Ich habe auch die Fehlermeldung gestellt. – Marco

+0

Danke. Ich lerne viel. :) – Marco

Verwandte Themen