Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

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

  • Autor

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.