Autor Beitrag
Andreas Vorbeck
Hält's aus hier
Beiträge: 3

Windows, Linux
D6 Ent, D7 Prof, D8 Prof, Belphi 10.1, Kyl3 Prof
BeitragVerfasst: Fr 11.11.16 12:06 
Hallo Leute, ich mache gerade ein Fernstudium und ich komme bei einer Aufgabe nicht weiter.
Vielleicht kann mir einer von Euch helfen.
Ich soll aus einer Konsolenanwendung eine Windows Form mit Mainmenü und einem Event Beenden erzeugen.
Nun die Form ist kein Problem, aber das Menü wird auf der Form nicht angezeigt.

Es gibt zwei Dateien, eine "Programm.cs" in der dieser Code steht:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading.Tasks;
using System.Drawing;

namespace Lektion3
{
    class Program
    {
        static void Main(string[] args)
        {
            Einsendeaufgabe_3 form = new Einsendeaufgabe_3();
            Application.Run(new Einsendeaufgabe_3());
        }
    }
}

und eine zweite Datei "Einsendeaufgabe_3.cs" in dem Dieser Code steht:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Lektion3
{
    public partial class Einsendeaufgabe_3 : Form
    {
        public Einsendeaufgabe_3()
        {
            InitializeComponent();
        }

        private void InizializeComponent()
        {
            MenuStrip stripMenu1 = new MenuStrip();
            stripMenu1.Items.Add("Testmenü");

            ((ToolStripMenuItem)stripMenu1.Items[0]).DropDownItems.Add("Beenden");

            this.ClientSize = new Size(427233);
            this.Text = "Einsendeaufgabe_03";

            this.Controls.Add(stripMenu1);            
        }
    }
}

Nun frage ich mich warum das mit einem Button funktioniert aber bei einem MenuStrip nicht??

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 11.11.16 12:27 
Hallo und :welcome:

warum verwendest du nicht den VS-Designer?
Auf Anhieb sehe ich jetzt auch keinen Fehler in deinem Code (aber du kannst ja einfach mal den mit dem VS-Designer generierten Code "*.designer.cs" vergleichen).

Für diesen Beitrag haben gedankt: Andreas Vorbeck
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 11.11.16 12:49 
Hast du mal debugged ob deine InizializeComponent() Methode überhaupt aufgerufen wird? Nimm mal das partial der Form weg. Wenn das dann nicht mehr kompiliert schau dir mal den Methodennamen im Konstruktor der Form an.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Andreas Vorbeck Threadstarter
Hält's aus hier
Beiträge: 3

Windows, Linux
D6 Ent, D7 Prof, D8 Prof, Belphi 10.1, Kyl3 Prof
BeitragVerfasst: Fr 11.11.16 13:04 
Danke für die schnelle Antwort.
Ich habe die *.Designer.cs verglichen und in der einen schreibt er diese drei Zeilen dazu
ausblenden C#-Quelltext
1:
2:
3:
private System.Windows.Forms.MenuStrip stripMenu1;
private System.Windows.Forms.ToolStripMenuItem testmenüToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem beendenToolStripMenuItem;

nehme ich jetzt diese drei Zeilen und schreibe Diese in meine "Lektion3.Einsendeaufgabe_3.Designer.cs" wird z.B. stripMenu1 grün unterstrichen und sagt "Das Feld 'Lektion3.Einsendeaufgabe_3.wird nie verwendet". Compilieren lässt sich das ganze aber auf der Form wird der Menüstrip nicht angezeigt?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 11.11.16 14:17 
Wieso hast du überhaupt eine Lektion3.Einsendeaufgabe_3.Designer.cs?

Die gezeigte Klasse ist so geschrieben das man keine braucht. Nimm das partial bei der Klassendefinition weg, lösche die designer.cs und schreib den Methodennamen im Konstruktor richtig.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 11.11.16 15:31 
@Ralf: Den Fehler habe ich wirklich nicht gesehen - wie gut, daß du drauf geschaut hast. :zustimm:

InitializeComponent() versus InizializeComponent()

Für diesen Beitrag haben gedankt: Andreas Vorbeck
Andreas Vorbeck Threadstarter
Hält's aus hier
Beiträge: 3

Windows, Linux
D6 Ent, D7 Prof, D8 Prof, Belphi 10.1, Kyl3 Prof
BeitragVerfasst: Fr 11.11.16 15:37 
Vielen Dank Ralf, funktioniert. :)