Zum Inhalt springen

Menueleiste erstellen


karomue

Empfohlene Beiträge

Hallo an alle.

Ich bin ganz neu hier und hoffentlich im richtigen Forum.

Außerdem bin ich C#-Neuling, was etwa umgekehrt proportional meinem Alter ist. Und das ist schon das erste Problem, mein Verständnis zu einer modernen Programmiersprache wie C# ist unwesentlich größer als 0.

Trotzdem möchte ich mein Problem mal schildern, vielleicht kommen wir ja doch zueinander.

Ich weis von ener anderen Anwendung, dass man in C# eine Menueleiste erstellen kann. Die, die ich da im Auge habe, hat ein Hilfe Icon, darunter kommt ein PullDown-Fenster mit 3 Feldern, bei (mindestens) einem geht ein weiteres Text-Fenster mit einem Rollbalken rechts auf, mit dem man durch einen das Fenster überschreitenden Text scrollen kann.

Wenn man hier Bilder anhängen kann, könnte ich das zeigen. Sonst, es geht um das Prog AVGPS aus dem Forum pocketnavigation, kann dort heruntergeladen werden, "verwaltet" GPS-Logger, vorwiegend von Wintec.

So, mein Problem, ich konnte über die Toolbox ein toolStrip auf die Form ziehen, damit komme ich wenigstens zu einem Textfenster, aber ohne Rollbalken und schon garnicht mit einem PullDown-Menue.

Jetzt wird es vermutlich ganz schwierig, denn was ich bräuchte, wäre ein Kochbuch-Codesnippsel. Aber schaun mer mal, wie gesagt, vielleicht kommen wir ja zueinander.

Nur, wie auch gesagt, meine Kenntnisse sind nur ungleich 0. :(

Grüße, Charly

Link zu diesem Kommentar
Auf anderen Seiten teilen

Leider, wie schon erwähnt, fehlen mir ganz offensichtlich viele Grundlagen die zum Verständnis notwendig wären.

Vermutlich müsste ich Code haben, den ich einfach in meine Anwendung einfügen kann, mit Hinweisen was ich wo aus der Toolbox wohin schaufeln müsste.

Der Hinweis, dass ein MenuStrip verwendet werden muss, ist für diejenigen, die die entsprechenden Grundlagen beherrschen, sicher ein gangbarer Weg. Für mich leider nicht.

Ich habe auch schon aus der Hilfe einige Beispiele versucht, doch außer vielen Fehlermeldungen, die ich wiederum nicht interpretieren kann, wurde das auch nix.

Sorry, vielleicht habe ich mich zulange auf Spaghetti-Code (Excel-VBA) ausgeruht um den Einstieg in die OOP ohne sehr große Hilfe zu schaffen.

Und nur mit Versuch und Irrtum geh es auch nicht weiter.

JA, und nochmal Sorry, ich bin natürlich auch kein Fachinformatiker. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo erstmal und willkommen bei den Fachinformatikern...

Mit ein wenig geduld, und nach dem üblichen verweis auf Openbooks von Gallileo - so etwa - werden sich sicher einige Leute hier finden lassen, die dir zur seite stehen und ratschläge und lösungshinweise für deine problematiken ansprechen.

schreib doch einfach erstmal den code von der stelle an der du gerade bist, hier rein, und sag in etwa was du dir vorstellst (hast du ja schon zum teil).

dir wird sicher bewusst sein, dass du ohne den quellcode des programms das du verändern möchtest quasi sehr schlechte karten hast, auch solltest du bei jeglicher veröffentlichung fremden, manchmal sogar eigenem codes, der urheberrechtsseite bewusst sein, also eventuelle verweise auf den ururheber miteinfügen, falls die lizens des programmcodes das vorsieht o.ä.

viel erfolg und auf wiederlesen, kosi

p.s. mit mehr infos (code) ist es wesentlich einfacher zu helfen und man kann mehr tun als dich auf die msdn seiten zu verweisen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erst mal danke den letzten 3 Antwortern.

Vielleicht nochmal zum Problem:

Ich habe eine Anwendung in die ich gerne einen Button, wie er oben als Menuleiste üblich ercheint, einfügen möchte. Von einer anderen Anwendung weiß ich (AVGPS) dass so was geht, mit einem sich öffnenden Textfenster mit einem Rollbalken rechts.

Soweit die "Problemstellung".

Nun ein paar Antworten: ich habe VISUAL C# 2008 vom Hanser-Verlag. Aber alles Lesen führte bislang nicht zum Erfolg, was einfach daran liegt, dass ich erst mit fortgeschrittenem Alter in die Programmiererei eingestiegen bin und mit heutiger Programmiertechnik, OOP etc. so gut wie chemisch rein bin. Ich bin in der Lage, ein wenig fertige Programme zu "verstehen", in Maßen zumindest.

So, was habe ich:

Code, den mir ein Kenner der Materie netterweise geschrieben hat, den ich mit etwas Berechnungen erweitert habe. Und, ein toolStrip hinzugefügt, oben am Rand, mit Bezeichnung und Farbe und folgendem Code:

private void toolStripTextBox1_Click(object sender, EventArgs e)

{

string caption = "Programmbeschreibung";

string message = "Diese Berechnung ist etwa 2000 als Excel-Tabelle entstanden, mit einem Erddurchmesser von 40.000 km." +

" Dieser wurde dann 2004 nach einer Information im Physik-Lexikon - heute als Link im Internet nicht mehr präsent - auf 40.030 km korrigiert. " +

......... und so weiter.....

"bei Lat2 = -180° auf eine solche von 19.903.816,3811353 m. Immerhin ein Unterschied von 133.693,406211399 m. Aber Silentium, das sind nur 0,667 %. "+

"Und mal ehrlich, wer würde das merken? Siehe weiter oben, was ist genau?" + Environment.NewLine + Environment.NewLine +

"karomue 'Charly', im August 2009";

MessageBox.Show(message, caption);

// MessageBoxIcon.Information.GetType(); //geht nicht

}

Der folgende Code waren die reichlich verzweifelten Versuche den angegebenen MenueStrip einzufügen, woraus erst mal noch ein TooStrip wurde:

private void toolStripTextBox2_Click(object sender, EventArgs e)

{

MessageBox.Show("mb2");

}

private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)

{

MessageBox.Show("MSTRIP1");

}

private void hahahToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("haha");

}

(Und nicht an haha stören, das ist Galgenhumor.)

Lasst mich jetzt nicht erklären, was das für Auswirkungen hat. Jedenfalls - soviel meine ich doch zu wissen - muss die Methode MenueStrip noch mit reichlich Code gefüllt werden, damit mindestens ein Rollbalken erscheint und ein Textfenster (MessageBox.Show ????) in den dann meine Beschreibung eingefügt werden kann. So wie es jetzt schon geht (geglückter Versuch und Irrtum), aber eben ohne Rollbalken. Und der wäre notwendig, wenn der Text, den ich verwenden will, noch länger werden würde, momentan ist er bereits einen Bildschirm hoch.

Zusatzfrage dazu: woher oder wie wird die Größe des Textfensters generiert? Eine Angabe, wie man Höhe und Weite vorgeben könnte, habe ich bei der MessageBox nicht gefunden.

Und noch was: die Codes, die man unter der Hilfe von Visual Studio C# Expreß Edition finden kann, sind entweder Fragmente oder laufen so nicht. Wobei ich jetzt mal vorsichtig meine, wenn im gesamten Code-Komplex 2x Main vorkommt, was zu Fehler führt, ist dieser Code dann überhaupt richtig? Und im Buch ist über Menuleiste reichlich wenig vorhanden.

Aber gut, vielleicht bin ich wirklich nicht in der Lage heutige Programme zu verstehen. Nehmen wirs mal so: durch inzwischen langjähriges lesen im Forum pocketnavigation weiß ich, dass die "heutige" Generation mit links programmiert. Dafür liest man sehr oft, dass

- kein Dreisatz mehr gekonnt wird,

- es mit der Prozentrechnung hapert,

- man oft nicht in der Lage ist, Koordinaten von den 3 Formaten g,gg / g m,mm / g m s,ss von einem in eines der anderen Formate umzurechnen...

Nun, ich kann das. Dafür nicht (in C# z.B.) tiefergehende Programmieranwendungen schreiben...

Bearbeitet von karomue
Link zu diesem Kommentar
Auf anderen Seiten teilen

Vllt. solltest du ein Buch lesen, um dir die Grundlagen anzueignen: OpenBook: Visual C# 2008.

Grüße, JasonDelife.

Hallo Jason,

danke für den Hinweis. Ich habe mal geschnüffelt. Den Inhaltswert eines Buches zu beurteilen ist sicherlich schwer. Damals, als 0-Kenner, hatte ich mich für das vom Hanser-Verlag entschieden, das schien mir sinnvoller, besser zu sein. Heute, nach dem Schnuppern, würde ich vermutlich wieder zu Galileo greifen, von dem ich schon das C von A bis Z habe.

Hm, wahrscheinlich werde ich es mir bestellen. ;)

Grüße, Charly

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn sich bei einem ToolStrip-Click Event ein neues Fenster / eine neue Form öffnen soll, musst Du diese erst hinzufügen und benennen. Zum Beispiel hier eine Form zum registrieren:

private void reToolStripMenuItem_Click(object sender, EventArgs e)

    {

      frmReg dlg = new frmReg();

    }

Nur so als Denkanstoß :)

Ich sage mal danke.

Aber genau so etwas rührt am Grundproblem, das ist für mich - noch zumindest - völlig unverständlich. Aber eine Anregung zu versuchen, dies zu verstehen.

Vielleicht trägt auch diese Angabe ja dazu bei, aus vielen Puzzlesteinen mal ein Bild zu machen.

Aber ich sehe schon, vielleicht spreche ich nicht Euere Sprache, denn Ihr seid offensichtlich meinen momentanen Kenntnissen meilenweit voraus. So etwa, als wenn einem Erstklässler der Stoff der 9. Klasse vorgesetzt wird.

Ich gebe aber die Hoffnung nicht auf.....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, die Hoffnung nicht aufgeben. Das ist wichtig.

Ich hab auch gerade erst angefangen. Hab ein halbes Jahr Praktikum gemacht, bekam auch: "Hier C#, schau mal ob Du klarkommst." vorgesetzt, nun bin ich soweit, dass ich einem User wie Dir, solche kleinen Sachen erklären kann.

So wird es bei Dir auch kommen ;)

Glaube mir.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Copy & Paste,

Zwei Klassen aufmachen vorher vesteht sich, und vllt. den Namespace anpassen.

Ist so etwa das gewollte Ergebnis, oder gehts um ne Menueleiste (wie im Threadtitel) und nicht um ne Messagebox (selbstdesigned) wie im Thread selbst?

Viel spaß damit, bei fragen und anregungen...

zum Lernen von OOPs, ist auch "c# von kopf bis fuss" (engl. head first c#) von O'Reilly glaube ich recht gut geeignet.

Klasse Form1:

using System;

using System.Windows.Forms;


namespace WindowsFormsApplication6

{

    public partial class Form1 : Form

    {

        private MSBoxForm eigeneMessageBox; // deklaration der Messagebox


        public Form1()

        {

            InitializeComponent();

            //initialisiere Box und übergebe Text (z.B. geht auch zuerst mit Standartkonstruktor und dann die Eigenschaft (Text) füllen

            eigeneMessageBox = new MSBoxForm("Diese Berechnung ist etwa 2000 als Excel-Tabelle entstanden, mit einem Erddurchmesser von 40.000 km." +

                " Dieser wurde dann 2004 nach einer Information im Physik-Lexikon - heute als Link im Internet nicht mehr präsent - auf 40.030 km korrigiert. " +

                "bei Lat2 = -180° auf eine solche von 19.903.816,3811353 m. Immerhin ein Unterschied von 133.693,406211399 m. Aber Silentium, das sind nur 0,667 %. " +

                "Und mal ehrlich, wer würde das merken? Siehe weiter oben, was ist genau?" +

                "Notiz von mir: nur weil Sie glauben, dass viele junge Leute sich den Dreisatz oder die Prozentrechnung nicht zutrauen, brauchen Sie noch lange nicht "+

                "in nem Forum rumflamen. Erstens sollten Sie sich über die aktuelle Bildungspolitik gedanken machen statt unqualifizierende bevorurteilte meinungen kundzutun "+ 

                "zweitens sollten Sie sich vielleicht überlegen, dass sie in einem FachinformatikerForum möglicherweise genau die falsche menschengruppe angreifen könnten, " +

                "und drittens behaupten andere Forenmitglieder ja auch nicht, dass alte Menschen keinen Plan von OOP haben, obwohl dies in einigen Beispielen durchaus sein mag." +

                "dennoch viel Spaß mit dem Kram hier, 15 min hats gedauert. inklusive des kleinen textes hier." +

                "Gruß\r\np.s.: wagen sie es sich nicht sich über mein schriftbild zu beschweren, ich bin selber der meinung dass der Dativ des Genitivs Tod ist, und finde dies " +

                "bedauerlich, jedoch werde ich diesen text nicht korrekturlesen\r\n" +

                "karomue 'Charly', im August 2009");

        }


        private void button1_Click(object sender, EventArgs e)

        {

            // Auf knopfdruck springt die msBox auf

            eigeneMessageBox.ShowDialog();      

        }

    }


    partial class Form1

    {

        /// <summary>

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;


        /// <summary>

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }


        #region Windows Form Designer generated code


        /// <summary>

        /// Required method for Designer support - do not modify

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            // 

            // button1

            // 

            this.button1.Location = new System.Drawing.Point(12, 12);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 0;

            this.button1.Text = "button1";

            this.button1.UseVisualStyleBackColor = true;

            this.button1.Click += new System.EventHandler(this.button1_Click);

            // 

            // Form1

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(284, 264);

            this.Controls.Add(this.button1);

            this.Name = "Form1";

            this.Text = "Form1";

            this.ResumeLayout(false);


        }


        #endregion


        private System.Windows.Forms.Button button1;

    }

}

Klasse MSBoxForm
using System.Windows.Forms;


namespace WindowsFormsApplication6

{

    public partial class MSBoxForm : Form

    {

        public MSBoxForm(string textFuerTextBox)

        {

            InitializeComponent();

            textBox1.Text = textFuerTextBox;

            // dadurch liefert die MessageBox den Dialogresult.Canceld zurück beim klick auf den Button

            CancelButton = button1;


            // Damit das Form wie ne MessageBox aussieht

            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;

            this.MaximizeBox = false;

            this.MinimizeBox = false;

            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

        }

    }


    partial class MSBoxForm

    {

        /// <summary>

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;


        /// <summary>

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }


        #region Windows Form Designer generated code


        /// <summary>

        /// Required method for Designer support - do not modify

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.textBox1 = new System.Windows.Forms.TextBox();

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            // 

            // textBox1

            // 

            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

                        | System.Windows.Forms.AnchorStyles.Left)

                        | System.Windows.Forms.AnchorStyles.Right)));

            this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;

            this.textBox1.Location = new System.Drawing.Point(12, 12);

            this.textBox1.Multiline = true;

            this.textBox1.Name = "textBox1";

            this.textBox1.ReadOnly = true;

            this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;

            this.textBox1.Size = new System.Drawing.Size(260, 46);

            this.textBox1.TabIndex = 2;

            // 

            // button1

            // 

            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

                        | System.Windows.Forms.AnchorStyles.Left)

                        | System.Windows.Forms.AnchorStyles.Right)));

            this.button1.Location = new System.Drawing.Point(12, 64);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 0;

            this.button1.Text = "OK";

            this.button1.UseVisualStyleBackColor = true;

            // 

            // MSBoxForm

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(284, 99);

            this.Controls.Add(this.button1);

            this.Controls.Add(this.textBox1);            

            this.Name = "MSBoxForm";            

            this.Text = "ErdInfos";

            this.ResumeLayout(false);

            this.PerformLayout();


        }


        #endregion


        private System.Windows.Forms.TextBox textBox1;

        private System.Windows.Forms.Button button1;

    }

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, die Hoffnung nicht aufgeben. Das ist wichtig.

Ich hab auch gerade erst angefangen. Hab ein halbes Jahr Praktikum gemacht, bekam auch: "Hier C#, schau mal ob Du klarkommst." vorgesetzt, nun bin ich soweit, dass ich einem User wie Dir, solche kleinen Sachen erklären kann.

So wird es bei Dir auch kommen ;)

Glaube mir.

Hm, o.K.

Der Unterschied ist nur, Du brauchst es vielleicht (bis sicher) beruflich, bei mir ist es "Spaß". Und das heißt, um zu lernen, muss man zunächst "Probleme", Anwendungen schaffen. Eine davon ist die, bei der ich gerne ene Beschreibung einfügen möchte.

Wie gesagt, alle Puzzelteile sind irgendwie nutzvoll. Auch wenn ich sie zur Zeit noch nicht interpretieren kann.

Jedenfalls ist C# eine interessante Entwicklungsumgebung, ich denke schon, dass ich hier "dran bleibe".

Ansonsten gibt es einfach ein Generationenproblem - ich hatte es bereits kurz angeschnitten - nur mal so: ich bin knapp 72. Das heißt, mit PC, Programmieren etc. tut ich mich einfach schwerer als die heutige Generation. Was ich bereits - und nicht nur - an meinem Sohn sehe.

Manchmal beschleicht mich das Gefühl, bei unserer älteren Generation sind aus was weiß ich welchen Gründen Partitionen im (biologischen Computer) Gehirn nicht aktiviert. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist ja auch logisch, in jungen Jahren bekommt das Gehirn seine "Grundstruktur". Deswegen fällt es auch mit zunehmendem Alter schwerer, wirklich neue Dinge zu erlernen ;)

Aber ich finde es toll, das du neuem gegenüber anscheinend sehr aufgeschlossen bist, wenn ich da an meine Großeltern denke... ;)

Lass dich nicht entmutigen.

Achja, sry für OT.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Copy & Paste,

Zwei Klassen aufmachen vorher vesteht sich, und vllt. den Namespace anpassen.

Ist so etwa das gewollte Ergebnis, oder gehts um ne Menueleiste (wie im Threadtitel) und nicht um ne Messagebox (selbstdesigned) wie im Thread selbst?

Viel spaß damit, bei fragen und anregungen...

zum Lernen von OOPs, ist auch "c# von kopf bis fuss" (engl. head first c#) von O'Reilly glaube ich recht gut geeignet.

Klasse Form1:

using System;

using System.Windows.Forms;


namespace WindowsFormsApplication6

{

    public partial class Form1 : Form

    {

        private MSBoxForm eigeneMessageBox; // deklaration der Messagebox


        public Form1()

        {

            InitializeComponent();

            //initialisiere Box und übergebe Text (z.B. geht auch zuerst mit Standartkonstruktor und dann die Eigenschaft (Text) füllen

            eigeneMessageBox = new MSBoxForm("Diese Berechnung ist etwa 2000 als Excel-Tabelle entstanden, mit einem Erddurchmesser von 40.000 km." +

                " Dieser wurde dann 2004 nach einer Information im Physik-Lexikon - heute als Link im Internet nicht mehr präsent - auf 40.030 km korrigiert. " +

                "bei Lat2 = -180° auf eine solche von 19.903.816,3811353 m. Immerhin ein Unterschied von 133.693,406211399 m. Aber Silentium, das sind nur 0,667 %. " +

                "Und mal ehrlich, wer würde das merken? Siehe weiter oben, was ist genau?" +

                "Notiz von mir: nur weil Sie glauben, dass viele junge Leute sich den Dreisatz oder die Prozentrechnung nicht zutrauen, brauchen Sie noch lange nicht "+

                "in nem Forum rumflamen. Erstens sollten Sie sich über die aktuelle Bildungspolitik gedanken machen statt unqualifizierende bevorurteilte meinungen kundzutun "+ 

                "zweitens sollten Sie sich vielleicht überlegen, dass sie in einem FachinformatikerForum möglicherweise genau die falsche menschengruppe angreifen könnten, " +

                "und drittens behaupten andere Forenmitglieder ja auch nicht, dass alte Menschen keinen Plan von OOP haben, obwohl dies in einigen Beispielen durchaus sein mag." +

                "dennoch viel Spaß mit dem Kram hier, 15 min hats gedauert. inklusive des kleinen textes hier." +

                "Gruß\r\np.s.: wagen sie es sich nicht sich über mein schriftbild zu beschweren, ich bin selber der meinung dass der Dativ des Genitivs Tod ist, und finde dies " +

                "bedauerlich, jedoch werde ich diesen text nicht korrekturlesen\r\n" +

                "karomue 'Charly', im August 2009");

        }


        private void button1_Click(object sender, EventArgs e)

        {

            // Auf knopfdruck springt die msBox auf

            eigeneMessageBox.ShowDialog();      

        }

    }


    partial class Form1

    {

        /// <summary>

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;


        /// <summary>

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }


        #region Windows Form Designer generated code


        /// <summary>

        /// Required method for Designer support - do not modify

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            // 

            // button1

            // 

            this.button1.Location = new System.Drawing.Point(12, 12);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 0;

            this.button1.Text = "button1";

            this.button1.UseVisualStyleBackColor = true;

            this.button1.Click += new System.EventHandler(this.button1_Click);

            // 

            // Form1

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(284, 264);

            this.Controls.Add(this.button1);

            this.Name = "Form1";

            this.Text = "Form1";

            this.ResumeLayout(false);


        }


        #endregion


        private System.Windows.Forms.Button button1;

    }

}

Klasse MSBoxForm
using System.Windows.Forms;


namespace WindowsFormsApplication6

{

    public partial class MSBoxForm : Form

    {

        public MSBoxForm(string textFuerTextBox)

        {

            InitializeComponent();

            textBox1.Text = textFuerTextBox;

            // dadurch liefert die MessageBox den Dialogresult.Canceld zurück beim klick auf den Button

            CancelButton = button1;


            // Damit das Form wie ne MessageBox aussieht

            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;

            this.MaximizeBox = false;

            this.MinimizeBox = false;

            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

        }

    }


    partial class MSBoxForm

    {

        /// <summary>

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;


        /// <summary>

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }


        #region Windows Form Designer generated code


        /// <summary>

        /// Required method for Designer support - do not modify

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.textBox1 = new System.Windows.Forms.TextBox();

            this.button1 = new System.Windows.Forms.Button();

            this.SuspendLayout();

            // 

            // textBox1

            // 

            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

                        | System.Windows.Forms.AnchorStyles.Left)

                        | System.Windows.Forms.AnchorStyles.Right)));

            this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;

            this.textBox1.Location = new System.Drawing.Point(12, 12);

            this.textBox1.Multiline = true;

            this.textBox1.Name = "textBox1";

            this.textBox1.ReadOnly = true;

            this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;

            this.textBox1.Size = new System.Drawing.Size(260, 46);

            this.textBox1.TabIndex = 2;

            // 

            // button1

            // 

            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)

                        | System.Windows.Forms.AnchorStyles.Left)

                        | System.Windows.Forms.AnchorStyles.Right)));

            this.button1.Location = new System.Drawing.Point(12, 64);

            this.button1.Name = "button1";

            this.button1.Size = new System.Drawing.Size(75, 23);

            this.button1.TabIndex = 0;

            this.button1.Text = "OK";

            this.button1.UseVisualStyleBackColor = true;

            // 

            // MSBoxForm

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.ClientSize = new System.Drawing.Size(284, 99);

            this.Controls.Add(this.button1);

            this.Controls.Add(this.textBox1);            

            this.Name = "MSBoxForm";            

            this.Text = "ErdInfos";

            this.ResumeLayout(false);

            this.PerformLayout();


        }


        #endregion


        private System.Windows.Forms.TextBox textBox1;

        private System.Windows.Forms.Button button1;

    }

}

Ui. :confused:

Ich hoffe, dass ich das ohne nicht interpretierbare und damit nicht auflösbare Fehlermeldungen in meine Anwendung zumindest testweise einfügen kann.

Vielen Dank, das ist auf jeden Fall etwas, was ich versuchen werde zu verstehen.

Hm, ich weiß jetzt nicht wie ich das anders erklären sollte, mit meiner derzeitigen Kenntnis von C#.

Mal ganz simpel nach klein Fritzchen Art:

ich möchte eine Programmerklärung einfügen, die man durch Anklicken eines Buttons aufrufen kann. Dazu schien mir ein Button in einer "Menuleiste" das Richtige zu sein. Das, was ich mit dem jetzigen Code erreicht habe, ist ja schon fast das, was ich mir vorgestellt hatte. Nur ist das Textfenster so, dass, wenn der Text länger wird, es unten aus dem Bildschirm "rauswächst" ohne Chance es lesbar zu verschieben. Ein Rollbalken um den Text zu scrollen wäre also angebracht. DA ich aber die Syntax weder von toolStrip noch menuStrip besser kenne, auch nicht weiß, ob und im Zweifel ein Container (zusätzlich) verwendet werden muss, stehe ich etwas auf dem Schlauch.

Aber im Galileo-Buch scheint es etwas anschaulicher erklärt zu sein als im Hansa-Buch. Das ist das Nächste mit dem ich mich befassen werde (-n muss).

Ich danke auf jeden Fall allen, die hier schon Vorschläge gemacht haben. Es wird nun eine Zeit brauchen, alles zu sichten, zu probieren. Vielleicht sollte wir jetzt erstmal eine Pause einlegen, denn ich muss zunächst alles versuchen zu prüfen, probieren, ob ich mit den Vorschlägen zurecht komme.

Vielleicht gebe ich das "Test-Prog" als exe auch mal auf meine HP (noch nicht im Profil) damit Ihr sehen könnt, wie es derzeit im Test-Zustand aussieht. Das könnte der bessere Weg sein um aufzuzeigen, was gemacht werden müsste. Gebt mir dazu aber etwas Zeit. Vielleicht übers WE.

Den kompletten Code kann ich nicht veröffentlichen, das er in großen Teilen nicht von mir stammt. Aber, es geht ja "nur" um ein Teilproblem. Und ich denke, dass "wir :) das hin bekommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube es geht auch einfacher :-)

Muss mich gleich entschuldigen bin nämlich eigentlich VB.NET programmierer, kann also schon sein, dass ich den ein oder anderen Befehl falsch tippe *G*

1. Schritt

a) Neues Formular hinzufügen (frm_Form1)

B) Mehrzeiliges Textfeld draufziehen (tx_Feld)

c) auf enabled = false setzen

d) Bei Onload

this.tx_Feld.Text = "blablablabla"

oder

this.tx_Feld.Text = s_Text

c) Dock (mittig)

d) optisch verändern (siehe Eigenschaften)

2. Schritt

a) neues Formular hinzufügen (frm_Form2)

evtl als MDI-Container definieren (siehe Eigenschaften)

B) MenuStrip hinzufügen

c) Im Designer Menüeintrag beschriften / benennen

d) doppelklick auf Menüeintrag

e) Jetzt stehste in OnClick

frm_Form1 dlg = new frm_Form1();

dlg.Show();

oder

dlg.ShowDialog();

Das sollte deine Zwecke auch erfüllen

Gruß

Hans-Jörg

p.s. Bist übrigens so alt wie mein Vater und der hat mit PC`s gar nix am hut !!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist ja auch logisch, in jungen Jahren bekommt das Gehirn seine "Grundstruktur". Deswegen fällt es auch mit zunehmendem Alter schwerer, wirklich neue Dinge zu erlernen ;)

Aber ich finde es toll, das du neuem gegenüber anscheinend sehr aufgeschlossen bist, wenn ich da an meine Großeltern denke... ;)

Lass dich nicht entmutigen.

Achja, sry für OT.

Ach ja,

ich fand es schon immer faszinierend. Damals, nach Aufkommen des Mikroprozessors, fand ich (wir) es notwendig, sich mit diesem

"Gebilde" zu befassen. Das führte zur 2. Variante des Commodore - der mit der großen Tastatur schon - erste Versuche mit Basic, nebenher Assembler 8080, später dann Euro-Apple/Assembler 6502, eine der ersten Borland-Versionen von Turbo-Pascal, später dann VBA für MS-Word/Access/Excel, in neuerer Zeit mit Hilfestellung C+ und nun - ebenfalls mit Hilfestellung - C#. OOP war mir schon immer ein "Greuel", schon seit Turbo-Pascal, denn da waren ja die ersten Ansätze. Tscha, dann war leider eine zu lange Pause in der ich mich mit VBA, vorwiegend Excel, beschäftigt habe ohne leider mal etwas mehr zu versuchen in OOP einzusteigen. Mit C# - sagte man mir - wird das aber Pflicht werden.

Nun ist es aber so, dass der Befehlsumfang so gewachsen ist, dass man schlechterdings, ohne dass einem jemand an der Hand führt, nicht weiterkommt. Auch alles was ich bislang unter die "Augen" bekam setzt bereits so viel vorraus, was bei mir einfach nicht präsent ist und reichlich mühselig erarbeitet werden muss. Und in allen aufgeführten Sprachen kannte ich eh nur einen Bodensatz, die Spaghetti-Programmiererei, die man sich quasi mit Basic angewöhnt hat, bin ich auch nicht mehr losgeworden. Und übertrage sie immer noch, da wo ich ein wenig mithalten kann, auch in C+ und C#.

Wie gesagt, für für beide Sprachen gab es einen netten "Helfer", der zumindest eine Anwendung programmiert hatte. Darauf konnte ich in C+ aufbauen, auch in C# - nur da ist es ungleich schwerer. Aber so einiges wird langsam klarer, auch wenn - verständlich - meine beiden "Anfangshelfer" sich zurückgezogen haben, denn ich verstehe schon auch, dass Anfängerfragen - ist halt der Weg des geringsten Widerstandes - jemand mit der Zeit auf den Wecker gehen.

Gut, soviel Bodensatz hat sich schon angesammelt, dass ich ein Stück alleine weiter komme. Bis auf solche Spezialdinge, wie meine Frage zum Menu, die leider so richtig nicht beantwortet werden in der Hilfe zu C# Expreß Edition oder allg. Suche im Internet. Oder so beantwortet werden, dass gleich eine Handvoll neuer Fragen entstehen, da wieder zuviel vorausgesetzt wird.

Aktuell brauche ich jetzt etwas Zeit um alles, was mir von Euch schon gesagt wurde, einzuordnen, zu prüfen, versuchen zu verstehen. Ich denke, dabei sollte man es momentan mal belassen, mit vielem Dank an alle.

Ich versuche mal bis übers WE die Exe der momentanen Anwendung - Großkreisentfernung zwischen 2 Koordinaten - im momentanen Testzustand auf meine HP zu nehmen, bis dort ist der Link zur HP auch im Profil - hoffe ich. Dann wird vielleicht auch das Problem klarer und evtl. Vorschläge gezielter. Wobei das was mir so vorschwebt in der Anwendung AVGPS - zu suchen und zu finden in Forum.pocketnavigation.de - unter Hilfe zu finden ist.

Also nochmals danke an alle und bis dann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo alle und

hallo Kosinator ;)

Meine HP sollte erreichbar sein, das Testprog Orthodrome ist drauf - wens interessiert, kann ja mal reinschauen. Leider sind bei der Testerei die beiden Überschriften länge1 und breite1 unter den Menuleisten-Probierereien verschwunden...

So, nun zu Kosinator:

Nachdem ich jetzt mal in Deinem Code näher gelesen habe: nein, ich habe niemand angegriffen. Mein Beispiel mit Dreisatz, Prozent etc. sollte lediglich aussagen, dass wir, - ich - es noch so gelernt haben, dass es "sitzt". Und über Bildungspolitik möchte ich mich auch nicht unterhalten, das würde zu keinem Ende führen.

Also nochmal, ich kann Dreisatz etc., aber komme mit Programmiersprachen - modernere - schlecht zurecht. Oft bemerkt, die heutige Generation kann Dreisatz weniger gut - rel. viele - dafür scheint sie den Umgang mit den modernen Prg-Sprachen quasi mit der Muttermilch eingesogen zu haben. Natürlich ist das mit dem Dreisatz etc. eine Folge - auch - der Bildungspolitik, der Überfrachtung von "Bildungsangebot" in einem viel zu kleinen Zeitraum, ich wollte es aber schon so verstanden haben, dass man dafür etwas kann, das mir z.B. sehr schwer fällt. Das sollte keineswegs ein Manko im Sinne "ihr seid dumm" sein, Gott bewahre. Inzwischen habe ich nämlich auch die Erfahrung machen dürfen/müssen, dass viele dieser User auf Gebieten, in denen ich Lücken habe, sehr gut drauf sind. Wenn das falsch rübergekommen ist, dann entschuldige bitte, ich hoffe, dass es jetzt etwas klarer ist.

Und nochmal nein, ich versuche zumindest niemand, der etwas mal nicht kann, zu diskriminieren. Es sollte mehr ein Beispiel dafür sein, dass bei mir einiges an - hm, sagen wir mal -"Bildung" fehlt.

Ist das jetzt so o,K?

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...