Autor Beitrag
neyod
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 19.11.11 07:20 
Hallo Zusammen,

habe bisher wenig Erfahrungen im Bereich C#. Habe ein Projekt vor, in dem ich Eingabewerte über ToolBoxen einlesen möchte. Dabei zusammen mit 10x30 Datensätzen viele Ausgabevariablen berechnen will.


Die Eingabe habe ich bereits weitgehend erstellt. War recht easy mit Labeln und Toolboxen. Dabei werden mit einem Clickhandler auch alle Werte in Variablen geschrieben.


Meine Frage ist jetzt, wie kann ich am Besten die Konstanten mit ca. 10x30 Datensätzen (10 Typen, mit 30 verschiedenen Daten) ins PRogramm implementeiren. Die Datensätze sollten am Besten nachher auch änderbar sein. Über ein Array ist das nicht gut oder ?


DataGrid vielleicht ?


Des Weiteren soll die Ausgabe zusammen mit Text erfolgen und an die richtigen Stellen sollen die Variablen zusammen mit dem Text ausgegeben werden.


Wie kann dies am Besten realisiert werden?


Fragen über Fragen, ich hoffe mir kann jemand weiterhelfen. Google bringt immer nur etwas über spezifische Elemente aber hilft nicht bei der groben Projektüberlegung.


Danke schonmal für Eure Hilfe.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 19.11.11 09:53 
Hallo und :welcome:

mit ToolBox meinst du sicherlich TextBox, oder?

Leider verstehe ich deine restliche Beschreibung nicht im Detail. Um was für Werte handelt es sich denn bei deinen Datensätzen?
Wenn du eine tabellarische Auflistung haben willst, dann nimm am besten ein DataGridView (in diesem kann der Anwender die Daten dann auch direkt ändern - sofern ReadOnly nicht auf 'true' gesetzt wird ;-)).

Evtl. könntest du mal einige Beispiele angeben (Daten, Text-Ausgabe)?
neyod Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 19.11.11 15:09 
Erstmal danke für deine Antwort.

Ja also.... Ich glaub ich bin schon etwas weiter gekommen.

Ich habe in einer Klasse alle Objekte angelegt und alle Daten dort abgelegt.
Ich kann nun auf die Daten alle zugreifen. Auch habe ich schon die Möglichkeit der Texteingabe mit Toolboxen gefunden und auch so angefangen zu rechnen.

Was für mich jetzt ganz wichtig ist. Wie kann ich die Arrays die in meiner Klasse constants sind, anzeigen und ggf. verändern?

Und wie kann ich die berechneten Werte zusammen mit Text ausgeben?

Die Ausgabe sollte so erfolgen --> "Die Übertragungseinheit misst mit einer Genauigkeit von XXXX Einheiten."

Hier muss ich aber jeweils in Abhänigkeit der ermittelten Werte aber noch Textelemente noch einfügen können. Ich bin insgesamt auf etwa 40 Sätze und 40 Varialben die ich ausgeben möchte.

Wie kann man das optisch relaisieren? Mit einem Textfeld?

Ich hoffe ich habe mich so etwas verständlicher gemacht.

Vielen Dank und viele Grüße

Dominik
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 19.11.11 15:27 
Hallo neyod,

du hast aber viele Fragen ;-)

Was genau meinst du mit "Arrays die in meiner Klasse constants sind"? Konstanten können selbstverständlich nicht geändert werden.
Aber wenn du z.B. ein Array
ausblenden C#-Quelltext
1:
int[] array = new int[] { 123 };					

hast, dann kannst du selbstverständlich die einzelnen Inhalte mittels "array[index] = 42" ändern.

Und zu deiner Frage nach der Ausgabe:
Die Ausgabe kannst du am besten mittels String.Format vornehmen:
ausblenden C#-Quelltext
1:
string sText = String.Format("Die Übertragungseinheit misst mit einer Genauigkeit von {0} Einheiten", einheiten);					

Wenn du jedoch in Abhängigkeit der Texte unterschiedliche Variablen ausgeben möchtest, dann gibt es verschiedene Möglichkeiten:
- du übergibst je nach Text die einzelnen Werte (z.B. mittels einer switch-Anweisung)
- du übergibst das Array an die String.Format-Methode und verwendest innerhalb des Format-Strings dann den Index: {index}, z.B. {7}, um den achten Wert des Arrays auszugeben (der Index ist ja null-basiert!).

Und Ausgeben kannst du die Texte in jedem beliebigen Control, z.B. TextBox, Label, RichEditBox...
neyod Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 19.11.11 17:49 
Kann man nicht irgendwie einen kompletten Text (der über mehrere Seiten gehen kann) vorgeben und dann sollen die Platzhalter nur nachher mit den ausgerechneten Variablen zusammen angezeigt werden ?

Danke.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 19.11.11 19:38 
Ja, dies meinte ich mit meinem 2. Vorschlag zu String.Format, z.B.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
int x = 1;
int y = 2;
int z = 3;
object[] array = new object[] { x, y, z };

string sText = String.Format("{0}{0}{1}-{2}", array);

// oder gleich alle Variablen als Parameter direkt angeben
string sText = String.Format("{0}{0}{1}-{2}", x, y, z);

Ausgabe ist dann "112-3".

Der erste Parameter kann selbstverständlich auch eine Variable sein, z.B.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
string text = "viel Text mit Formatierungszeichen {0}, {1} etc. pp";

string sText = String.Format(text, array);
// bzw.
string sText = String.Format(text, x, y, z);


Du kannst beliebig viele Parameter dort angeben (also nicht nur die drei x, y, z).
neyod Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 20.11.11 11:31 
ok das habe ich jetzt verstanden, dass is schonmal sehr gut. Jetzt stellt sich mir nur die Frage:

Wie kann ich am Besten daraus ne Tabellenansicht hinkriegen?

Wert X 10 kg
Wert Y 23 N
Wert Z 3 I-Units

Das dann so oder so ähnlich aussieht.

Ich nehme an, bei mehrern Zeilen füge ich mit dem & Operator einfach den String Zeile für Zeile zusammen oder ?

Danke für Eure Antworten.
neyod Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: So 20.11.11 12:40 
Leider wird das nicht so deutlich wie ich das meine, also die Werte, sollen alle auf der selben Höhe sein und rechts am Rand angeordnet sein. Wie halt bei einer normalen Tabelle mit mehreren Spalten.
Hoffe das is jetzt deutlich geworden
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 20.11.11 13:51 
Hallo,

wie schon geschrieben, nimm für die Tabelle am besten ein DataGridView.
Und such mal im Internet nach "DataGridViewFaq.doc" - dort stehen viele Infos zu dessen Benutzung drin.