In Klasse definierten String auslesen



  • Hallo,

    ich hoffe jder ist gut ins neue Jahr gekommen. Ich habe mal wieder ein Problem. Und zwar habe ich folgende Klasse:

    [ Vorher sei noch gesagt, dass ich dies so natürlich nicht wirklich anwenden will und es sich hier jetzt nur um ein schnell zusammen geschriebenes Beispiel handelt, dass mein Problem fokusiert. Von daher bitte auch kleinere Ungereihmtheiten einfach ignorieren ]

    // test.h
    
    #pragma once
    
    ref class Testklasse
    {
    	static cli::array<System::Windows::Forms::TextBox^>^ testboxes;
    	static Form^ myForm;
    	static cli::array<System::String^>^ Stringarray;
    
    public:
    	Testklasse( Form^ myForm, cli::array<System::Windows::Forms::TextBox^>^ testboxes, cli::array<System::String^>^ Stringarray );
    }
    
    // test.cpp
    
    #include "test.h"
    #include "stdAfx.h"
    
    Testklasse::Testklasse(Form^ myForm, cli::array<System::Windows::Forms::TextBox^>^ meineBoxen, cli::array<System::String^>^ Stringarray)
    {
    	testboxes = meineBoxen;
    
    	meineBoxen = gcnew cli::array<System::Windows::Forms::TextBox^>(20);
    	Stringarray = gcnew cli::array<System::String^>(20);
    	int Abstand = 20;
    
    	for( int i = 0; i < 20; i++ )
    	{
    		meineBoxen[i] = gcnew System::Windows::Forms::TextBox();
    		meineBoxen[i]->Location = System::Drawing::Point( 20, Abstand );
    		meineBoxen[i]->Size = System::Drawing::Size( 100, 20 );
    		meineBoxen[i]->Name = L"meineBoxen" + i;
    		meineBoxen[i]->Text = L"TextBox " + (i + 1);
    
    		Abstand += 25;
    
    		Stringarray[i] = meineBoxen[i]->Text;
    	}
    
    	for each( System::Windows::Forms::TextBox^ tb in meineBoxen )
    	{
    		myForm->Controls->Add( tb );
    	}
    }
    

    Aufgerufen wird die Klasse also in meiner Form wie folgt:

    private: Testklasse^ neueInstanz;
    neueInstanz = gcnew Testklasse( this, meineTextboxen, meineStrings );
    

    Das klappt auch "wunderbar". Jedoch würde ich nun gerne den Inhalt des String-Arrays auslesen, was ja Stringarray[0] = "TextBox 1", Stringarray[1] = "TestBox 2" usw. entsprechen müsste ...

    Problem dabei ist jedoch, dass ich auf einen private member natürlich nicht zugreifen kann und auch über "meineStrings" nicht abrufen kann ...

    Für Hilfestellungen bin ich sehr dankbar ...



  • Hallo,

    hatte eben das selbe Problem.

    Wollte den String per

    line = textBox1->text;
    

    auslesen.

    Brachte bei mir den Fehler: "System::Windows::Forms::Control::text": Kein Zugriff auf private Member, dessen Deklaration in der System::Windows::Forms::Control-Klasse erfolgte.

    Lösung:

    line = textBox1->Text;
    

    Also nur das "t" groß schreiben

    mfg


Log in to reply