[C#] Form mit der .cs Datei verknüpfen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von hunt33r, 19. Januar 2012 .

  1. 19. Januar 2012
    Form mit der .cs Datei verknüpfen

    Hallo Leute,

    Ich habe gerade via Toolbox ein Formular gebaut und hatte vorher eine Konsolenanwendung und wollte nun fragen, wie ich den Code der Konsolenanwendung mit den Buttons aufrufen kann bzw. bestimmte Befehle.

    Würde mich über Antworten freuen.

    Gruß
    hunt33r
     
  2. 19. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Naja du hast doch nun wenn du ein neues Formular erstellt hast auch eine Codedatei. Und in jener kannst du doch einfach den Code von deinem Konsolenprogramm reinkopieren und ggf. anpassen.
     
  3. 19. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Danke für deine Antwort.

    Das Problem ist, dass ich nicht eingaben wie gehabt in Variable packen kannst.
    Hier zum Beispiel in der Konsolenanwendung:
    Code:
     
     Console.WriteLine("\n Size of Matrix 1:");
     Console.Write("\n Enter the number of rows in Matrix 1 :");
     //Anzahl der Zeilen wird als Variable m definiert
     int m = int.Parse(Console.ReadLine());
     Console.Write("\n Enter the number of columns in Matrix 1 :");
     //Variable n definieren
     int n = int.Parse(Console.ReadLine());
     //mxn Matrix definieren
     a = new int[m, n];
     Console.WriteLine("\n Enter the elements of Matrix 1:");
     for (int i = 0; i < a.GetLength(0); i++)
     {
     for (int j = 0; j < a.GetLength(1); j++)
     {
     a[i, j] = int.Parse(Console.ReadLine());
     }
     }
    Wie müsste das im Formular sein?
     
  4. 20. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Naja, du wirst ja dann wahrscheinlich die Eingaben (ReadLine()) nicht mehr über die Konsole machen, sondern eher Textboxen oder NumericUpDowns auf deinem Formular für die Eingabe hernehmen.

    int i = int.Parse(textBox1.Text);
    int j = (int)numericUpDown1.Value;

    War es das, was du gesucht hast?
     
  5. 21. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Danke avoir!

    Genau das habe ich gesucht.

    Jetzt sieht es so aus.
    Code:
    private void Weiter_Click(object sender, EventArgs e)
     {
     int m = int.Parse(EingabeZeile.Text);
     EingabeZeile.Visible = false;
     EingabeSpalte.Visible = true;
     int n = int.Parse(EingabeSpalte.Text);
    
     a = new int[m, n];
     for (int i = 0; i < a.GetLength(0); i++)
     {
     for (int j = 0; j < a.GetLength(1); j++)
     {
     a[i, j] = int.Parse(EingabeKomp.Text);
     }
     
     }
    Nun ist mein Problem, dass Alle Eingabefelder übereinander sein müssen und nach der Eingabe, auf den "Weiter" Button geklickt wird und dann EingabeSpalte "Visible" und gefüllt wird und dann noch die Komponenten der Matrix eingegeben werden müssen.

    Hinzukommt, dass ich wenn ich es ausgeben möchte "Der Name "i" ist im aktuellen Kontext nicht vorhanden." erhalte.

    Dann kommt ja noch die 2. Matrix?

    Dank im vor raus.
     
  6. 22. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Code:
    for (int i = 0; i < a.GetLength(0); i++)
     {
     for (int j = 0; j < a.GetLength(1); j++)
     {
     a[i, j] = int.Parse(EingabeKomp.Text);
     }
     
     }
    Da hast du dann das Problem, dass jeder Matrixeintrag ja dann denselben Wert zugewiesen bekommt (der, der in EingabeKomp steht) wenn du auf weiter drückst.

    Du köntest eventuell dir irgendwas mit dem DataGridView hinbasteln, aber am einfachsten würde es wohl sein, wenn du die Eingabe der Matrix in einer Multiline TextBox machst alá:
    für eine 3x3-Matrix, und dann das Ergebnis im Nachhinein parsed...

    VG, avoir.
     
  7. 22. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Danke für die Antwort.

    In der Augabenstellung steht, dass man die Eingabezeile splitten soll und so die Matrix Zeile für Zeile füllen wie sehe das aus?

    Danke!
     
  8. 23. Januar 2012
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Form mit der .cs Datei verknüpfen

    Sprich du hast eine Textbox, in der du die komplette Eingabe machst und dann die Eingabe splittest.

    Das würde irgendwie so aussehen, nehme ich an:
    Bild

    Hier ist der Code von dem Button, der zuerst die Anzahl der Zeilen und Spalten herausfndet, dann ein zweidimensonales array erstellt und mit den Daten der Eingabezeile füllt...
    Code lesen und verstehen solltest du selber. Ich hoffe das ist so richtig... habs nur schnell hingeklatscht und gebe keine Garantie auf Korrektheit...
    Code:
    private void Weiter_Click(object sender, EventArgs e)
     {
     int zeilen = int.Parse(textBoxZeilen.Text);
     int spalten = int.Parse(textBoxSpalten.Text);
    
     int[,] matrix = new int[zeilen, spalten];
    
     string eingabe = textBoxEingabe.Text;
     string[] splitted = eingabe.Split(' ');
    
     if (splitted.Length != zeilen * spalten)
     {
     // Error
     Console.WriteLine("Die Eingabe entspricht nicht der erwarteten Matrixgröße");
     }
    
     int aktuelleZeile = 0;
     int aktuelleSpalte = 0;
     foreach (string s in splitted)
     {
     matrix[aktuelleZeile, aktuelleSpalte] = int.Parse(s);
    
     aktuelleSpalte++;
     if (aktuelleSpalte >= spalten)
     {
     aktuelleSpalte = 0;
     aktuelleZeile++;
     }
     }
     }
    

    vg
     
  9. 23. Januar 2012
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Form mit der .cs Datei verknüpfen

    Danke!
    Das ist super.

    Wie kann ich denn einen Output_Matrix() string[] machen, der die Matrix anzeigt?
    Und wie macht man es, dass nur ein Textfeld für alle Eingaben genutzt wird und die Matrix Zeile für Zeile gefüllt wird?
    So soll es aussehen: img.png
    {img-src: //s.gullipics.com/image/o/5/o/hq2x3b-j1m8f3-z6yt/img.png}
     
  10. 25. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Erhalte den Fehler "
    ",
    bei
    Code:
     private void Weiter_Click(object sender, EventArgs e)
     {
     if (radioButton1.Checked)
     {
     Matrix leftMatrix = new Matrix();
     leftMatrix.[B]RowCount[/B] = int.Parse(Eingabe.Text);
     
     }}
    In der Klasse steht zu RowCount
    Was kann der Auslöser sein und wie kann ich es ausschalten?
     
  11. 25. Januar 2012
    AW: Form mit der .cs Datei verknüpfen

    Dein RowCount der Matrix klasse hat keine Set Methode. Deshalb kann auch auch kein Wert geschrieben werden. Du musst also entweder deinen Konstruktor anpassen und den Wert bei der Initialisierung übergeben oder eine Set Methode schreiben.
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.