C# array+msgbox frage textboxergebnis

lxlox

Cadet 4th Year
Registriert
Nov. 2013
Beiträge
74
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            int[] myarray;
            myarray = new int[5];
            int count = myarray.Count();
            string message = "";

            for (int i = 0; i < count; i++)
            {
                myarray[i] = i + 3;
                message += myarray[i] + "\n";
            }
            MessageBox.Show(message);



        }
    }
}

Ich nutze visual studio c# 2010. Dieses Programm stellt dar
i = 0
i + 3
i = bis 5
Das Ergebnis wird in einer Messagebox dargestellt.

Ich möchte das Ergebnis aber in einer textbox darstellen. Ich weis aber nicht wie ich das machen soll. Außerdem Frage ich mich, wieso die messagebox mir nur etwas von 3-7 anzeigt und nicht von 3-8. Ich freu mich auf eure nützlichen tips.
 
Hi,

erstelle dir ein Formular mit Textbox und lasse das mit entsprechendem Inhalt erscheinen anstelle der MessageBox.

VG,
Mad
 
Habe ich gemacht. Ich habe an stelle "messageBox.Show(message);" das hier "textbox1.show(message);" hingeschrieben um zu raten. Das hat aber nicht geklappt.

edit: textbox1+button habe ich auch eingefügt standartmäßig.
 
In VIsual Studio 2010 habe ich das gemacht.
Ich habe ein Button und eine textbox erstellt.
In den Code des Buttons habe ich den obrigen Code hineingeschrieben.
Ich möchte, wenn ich auf den button klicke, das in der textbox der text erscheint.
 
Hi,

In VIsual Studio 2010 habe ich das gemacht.

Nochmal: nein, du hast nicht das gemacht was ich schreibe! Du sollst eine Form / ein Window mit einer Textbox erstellen! Begreif das doch bitte!

VG,
Mad
 
Hi,

willst du das Ergebnis in einem Popup mit Textbox darstellen oder in einer Textbox, die eh schon da ist? Dann würde es so klappen wie 3murmeln es schreibt.

Ansonsten (wenn es so sein soll wie bei der Messagebox, also mit Popup) dann erstelle ein Window oder eine Form.

VG,
Mad
 
Wenn du linebreaks in der textbox haben möchtest, nimm am besten gleich eine richtextbox und wie murmeln schon gesagt hat mit "richtextbox1.Text = message;" weist du den Inhalt zu.

edit:

Code:
Form tbForm = new Form();
tbForm.Show();

RichTextBox rtb = new RichTextBox();
tbForm.Controls.Add(rtb);

um das ganze so zu machen :)
 
Zuletzt bearbeitet:
lxlox schrieb:
Ich möchte das Ergebnis aber in einer textbox darstellen. Ich weis aber nicht wie ich das machen soll. Außerdem Frage ich mich, wieso die messagebox mir nur etwas von 3-7 anzeigt und nicht von 3-8. Ich freu mich auf eure nützlichen tips.

Nun das liegt daran dass deine Bedingung vom For-Loop sagt "iteriere so lange wie die variable i KLEINER ist als der Count von myarray, nämlich 5."

Wenn du dein For-Loop einfach mal ohne das i+3 ausgibst siehst du genau wo das Problem liegt:

https://dotnetfiddle.net/6GL6sA


Zudem würde ich dir empfehlen dass du anstelle von arrays auf List<T> umsteigst, da diese um einiges angenehmer zu verwenden sind (sie nutzen intern selbst ein Array sind aber durch die bereitgestellten methods viiiiiiiel viel einfacher zu nutzen).

Zusätzlich, wenn du so Späße machst wie Strings in einem For(Each)-Loop zu manipulieren solltest du, sofern der Loop oder der zu manipulierende String groß genug ist immer einen StringBuilder anstelle von strings mit += verwenden.
 
Zuletzt bearbeitet:
Gut, das klappt. Schön das ihr so schnell antwortet. ja ich meine textbox. ich werde mir das mal mit der richtextbox anschauen.

Wie bekomme ich den Zeilenumbruch zu stande?
 
Was dein Problem mit der Ausgabe betrifft -> Da die Schleife 5 x durchlaufen wird (0 - count), und i nicht größer als 4 wird, ergibt das bei - myarray[4] = 4 + 3; - eben einen Wert von max. 7.
 
Anhang anzeigen 420588

Heute sitze ich an einen anderen PC und fasse noch einmal die Problematik zusammen.
Frage 1 Madman1209 02.06.2014, 20:10

Ich finde, dass meine kenntnisse dazu noch nicht ausreichend vorhanden sind.
Ich kanne zwar ein neues Formular erstellen und sachen im neuen formular einbauen,
jedoch nicht eine rechenoperation von einem formular auf das andere übertragen.

Aufbau:
button+ textbox eingefügt
Sinn: klick auf button->lösung soll erscheinen in der textbox im formular (ohne neue box)

Lösungsansätze:

richTextBox1.Text = "message"; ergebnis= message als textwert ohne irgendwelche zahlen (nach pc wechsel)
textBox1.Text = "message"; ergebnis= message als textwert ohne irgendwelche zahlen (nach pc wechsel)
MessageBox.Show(message); die messageverknüpfung "3 4 5 6 7" wird ausgegen

Madman1209 schrieb:
Hi,



Was hast du? Wo? Ich habe gesagt, erstelle ein Formular (Form) oder Fenster (Window) mit einer Textbox und zeige das. Wo hast du das gemacht?

VG,
Mad


Ich habe zu diesen zeitpunkt eine form erstellt und nicht 2


3murmeln 02.06.2014, 20:34 #7 Ja habe ich seit dem pc welchsel klappt es so nicht mehr, weil folgendes:
textBox1.Text = "message"; ->>>> ergebnis= message als textwert ohne irgendwelche zahlen


Madman1209 02.06.2014, 20:36 Ich möchte das ergebnis nicht in einem popup mit textbox darstellen.
Ich möchte, dass das ganze in einer textbox die da ist durch klick auf den button dargestellt wird.
3murmeln lösungsvorschlag klappt merkwürdiger weise nicht an den anderen computer. Gibt es noch eine andere
lösung? Ich akzeptiere keine messagebox als lösungsvorschlag.

bad_influence 02.06.2014, 20:37 Schön den code anzusehen und darüber nachzudenken. Dies ist jedoch nicht meine frage gewesen. Ich suche einen anderen lösungsvorschlag als den von murmeln, weil dieser nicht auf den anderen pc klappt.
Weil:
textBox1.Text = "message"; ->>>> ergebnis= message als textwert ohne irgendwelche zahlen


cH40z-Lord 02.06.2014, 20:39 Das ist für mich noch zu schwer um das zu verstehen, weil visual c# sehr umfangreich ist und ich an den Grundkenntnissen knabber.

Wunderkind 02.06.2014, 20:41 Das habe ich verstanden


Frage an alle:

textBox1.Text = "message"; ->>>> ergebnis= message als textwert ohne irgendwelche zahlen

Wie bekomme ich das normal dargestellt? in der textbox in der form? siehe problem bild?





edit: problem gelöst. Wie beim letzten mal nach dem ich die frage gestellt habe 0Oo mysteriös
 
Zuletzt bearbeitet:
Zurück
Oben