Zum Inhalt springen

[C++ .NET] Handle für Menustrip zuweisen


errox

Empfohlene Beiträge

Hallo Freunde

Ich hab wieder eine Frage: In meinem programm hab ich ein Menustrip, in dem die Konfigurationsdateien die Ausgelesen werden hineinkommen

Code:


System::IO::DirectoryInfo^ dirInfo = gcnew System::IO::DirectoryInfo( "config\\" );

array<System::IO::FileInfo^>^files = dirInfo->GetFiles( "*" );

if ( files != nullptr )

{

	System::Collections::IEnumerator^ myEnum = files->GetEnumerator();

	while ( myEnum->MoveNext() )

	{

		System::IO::FileInfo^ file = safe_cast<System::IO::FileInfo^>(myEnum->Current);

		ListViewItem^ item = gcnew ListViewItem( file->Name );

		item->SubItems->Add( file->FullName );

		configLoad->DropDownItems->Add(file->Name);

	}

}

configLoad heisst mein Menustripitem. Das sieht dann in Etwa so aus:

Konfiguration ( MENÜLEISTE)

Laden------>Datei 1

Datei 2

usw.

Die Datei selbst hinzuzufügen ist kein Problem, aber jz kommt der Schwierige Teil:

Wenn ich bsp. auf Datei1 klicken Will, soll sich ein Fenster öffnen, in dem ich eine Zahl eingeben kann. Wenn ich dann auf OK gebe, sollen diese Daten an die "Mainform" übergeben werden ( also der Dateiname, und die Zahl die ich eingegeben hab )

Wie geht das?

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Intellisence Sei dank hab ich herausgefunden, dass ich nach Add() was hinzufügen kann.

Jedoch kann ich damit noch wenig anfangen. Vielleicht habt ihr damit merh erfahrung:


configLoad->DropDownItems->Add(file->Name)->[B]OnClick()[/B];

configLoad->DropDownItems->Add(file->Name)->[B]Events->AddHandler[/B];

Es sind auch andere da, aber die sind Unrealistisch

Danke im vorraus

Lg errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tut mir leid, aber ich kann damit wenig anfangen :(

Was ich am meisten aufregt dass es so schwer ist, ein Event in C++ zu Programmieren. Ich dacht es wäre einfacher

Das ist nicht sooo schwierig wie man denkt.

Zum Event setzen

this->button->Click += gcnew System::EventHandler(Systemobjekt [meist this],  Methodenpointer [&Form1::button1_Click]);

Ergo:

this->button->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

Die Methode dann mit dem dementsprechenden Parametern einbauen (System::Object und System::EventArgs)

Für ein anderes Event einfach das dementsprechende auswählen.

lg, Cad

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Rasche antwort, aber ich hab es jetzt so:


void load_config(Object^ sender, EventArgs^ e)

{

loadconfig^ testdialog = gcnew loadconfig();

testdialog->ShowDialog();

}

....

....

....

if ( files != nullptr )

{

    System::Collections::IEnumerator^ myEnum = files->GetEnumerator();

    while ( myEnum->MoveNext() )

    {

        System::IO::FileInfo^ file = safe_cast<System::IO::FileInfo^>(myEnum->Current);

        ListViewItem^ item = gcnew ListViewItem( file->Name );

        item->SubItems->Add( file->FullName );

        ToolStripItem^ item2 = configLoad->DropDownItems->Add(file->Name);

        item2->Click += gcnew EventHandler(this, &Form1::load_config);


    }

}

Eine frage wäre da noch: Die geöffnete Form ( loadconfig ) besitzt ein label. Dieses Label soll nach der Geladenen Konfiguration heissen ( z.B. Geladen: neuesDokument.doc ). und wie geht das Umgekehrt? Also in der neuen form ( immernoch loadconfig ) ist ein Button und eine Textbox. Die Textbox soll ein Button in der Mainform ( Form1 ) umbenennen.

In HTML wäre das mit GET und POST ganz einfach :D Aber in .NET?

Dankeschön

Link zu diesem Kommentar
Auf anderen Seiten teilen

loadconfig ist ja deine Form.

Der Form kannst du auch demenstprechende Attribute geben, die du vor- oder beim Aufruf abgreifst. (get/set, oder auch rückgabe/übergabe bei methoden, je nach Wunsch)

Ich versteh nicht so ganz was du magst.

Versuch das bitte mal klar zu strukturieren. Dann kann man dir auch hier weiterhelfen.

Mögliche Denkansätze:

- Überladen von ShowDialog (wenn möglich, k.A. aus dem Kopf)

- Attribute der loadconfig-Form

- Eigene Methoden

- Übergabe der dementsprechendem Objekte (z.B. Referenz auf den Button des Main-Fensters, Referenz auf das Main-Fenster)

Einige Ansätze sind schön, andere weniger. Welchen man wählt hängt ganz vom Zweck ab. Den erkenn ich aber nicht. :D

lg, Cad

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...