Forum: PC-Programmierung C# ToolStripMenu soll nicht schliessen


von Franz (Gast)


Lesenswert?

Hallo,

ich habe in C# WindowsForm ein ToolstripMenuItem. Jetzt habe ich 
ausserdem
in diesem ToolstripMenuItem einen Eintrag "Spalten" dieser ist so 
programmiert das man boolisch auswählen kann (Spalten.Checked) als 
entweder Checked=true oder checked=false;

Ich weis gar nicht wie ich es beschreiben soll mein Problem
ist das wenn ich auf den Eintrag "Spalten" klicke das ganze ToolStrip 
schliesst. Als ich seh erst beim nächsten mal wenn ich in Toolstrip gehe 
das der Checked-Hacken gesetzt.

Ich will es aber so haben, das ich ins Toolstrip reingehe und darin auf 
den
Eintrag "Spalten" klicken kann so oft ich will wie bei einer CheckedBox

Verständlich ?

von jonas biensack (Gast)


Lesenswert?

Code...

von jonas biensack (Gast)


Lesenswert?

Oder sollen wir hier raten?

von Franz (Gast)


Lesenswert?

private void tsSelectedRows_Click(object sender, EventArgs e)
        {
            if (tsSelectedRows.Checked)
            {
                tsSelectedRows.Checked = false;
            }
            else
                tsSelectedRows.Checked = true;
        }

so wir nur getoogelt den Rest hat bisher der Designer programmiert

Also noch wenn ich auf tsSelectedRows(ToolstripMenuItem - ein Eintrag) 
in der Form clicke wird schon der obige Code ausgeführt aber ich sehe 
die Änderung nicht da dabei auf das ToolStripMenuItem geschlossen wird

von jonas biensack (Gast)


Lesenswert?

Toll,

nun kann ich immer noch raten...

MAl ins blaue:

welche Erreignisse (Funktionen sind mit ToolStrip verknüft), also wenn 
du mit VSStudio arbeitest, neber den Eigenschaften?
Wenn da welche sind, welche INhalte haben die (posten hier).

gruß

von jonas biensack (Gast)


Lesenswert?

Oder schick mir mal das ganze Projekt...dann schau ich mal schnell 
drüber, hab gerade sowas von Langeweile...

von Arc N. (arc)


Lesenswert?

Franz schrieb:
> Ich will es aber so haben, das ich ins Toolstrip reingehe und darin auf
> den
> Eintrag "Spalten" klicken kann so oft ich will wie bei einer CheckedBox
>
> Verständlich ?

Abgesehen davon, dass mir keine Anwendung bekannt ist, die das Verhalten 
der Menüs so verbiegt...
Entweder eine eigene Klasse von ToolStripMenuItem ableiten und das 
Maus-Event-Handling anpassen, WPF/Silverlight verwenden oder kein 
normales Menü, sondern ein Office-Ribbon.

von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ganz einfaches Beispiel. Einzige Forderung ist das bei einem
Click auf "Test" im Toolstripmenu das Toolstripmenu nicht schliesst und 
man somit das toggeln des Hackens sieht.

von Daniel Düsentrieb (Gast)


Lesenswert?

Ich habe gerade mal dein Beispiel ausprobiert.
Habs aber auch nicht hinbekommen :)

Aber irgendwie muss es gehen!?

von Franz (Gast)


Angehängte Dateien:

Lesenswert?

So ein bischen weiter bin ich schon.

Ich habe im Toolstrip zwei Einträge.

Beim Click auf das erste soll der Hacken toggeln und das Toolstrip darf 
nicht schliessen.

Beim Click auf das zweite soll der Hacken auch toggeln nur soll nach dem
Click das Toolstrip wie gewohnt schliessen.

Ich kriege das einfach nicht hin.

Kann sich jemand bitte mal den Code ansehen

von Sam .. (sam1994)


Lesenswert?

Du musst, wenn ein Item angeklickt wird, dir merken ob dieses das 1. 
oder das 2. ist. Das überprüfst du dann im Event.

Arc Net schrieb:
> Abgesehen davon, dass mir keine Anwendung bekannt ist, die das Verhalten
> der Menüs so verbiegt...

Versteh ich auch nicht. Das einzigste was an den Menu/ToolStrip 
Funktionen fehlt ist (finde ich) eine Radiobutton Funktion. Die hab ich 
mir mal für das Toolstrip abgeleitet.

von Franz (Gast)


Lesenswert?

"Du musst, wenn ein Item angeklickt wird, dir merken ob dieses das 1.
oder das 2. ist. Das überprüfst du dann im Event."

Wie mach ich denn das?
Es wird nämlich schon ins Closing eingesprungen bevor in eine 
CheckChanged oder On Click Funktion eingesprungen wird.

Also das Toolstrip ist schon so gut wie zu wenn eine OnClick oder 
CheckChanged Funktion aufgerufen wird

von A. V. (kra5h)


Lesenswert?

ändere deine form1.cs in:
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
10
namespace WindowsFormsApplication1
11
{
12
    public partial class Form1 : Form
13
    {
14
        public Form1()
15
        {
16
            InitializeComponent();
17
            test.Click += new EventHandler(test_Click);
18
        }
19
20
        void test_Click(object sender, EventArgs e)
21
        {
22
            toolStripDropDownButton1.ShowDropDown();
23
        }
24
 
25
26
    
27
    }
28
}

...dann wird immer, wenn du den button "test", also der nicht zum 
schliesen führen soll, das dropdown wieder geöffnet... ;)

von Franz (Gast)


Lesenswert?

@A. V.

Super idee, danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.