Entwickler-Ecke
C# - Die Sprache - Grafische Darstellung der Klassen auf Form1!?!
HaShLo - Do 06.03.08 22:51
Titel: Grafische Darstellung der Klassen auf Form1!?!
Hallo Leute !
Ich habe in C# Visual Studio 2005 folgende Klassen mit folgendem Codes erstellt.
Simkarte:
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: 34: 35: 36: 37:
| using System; using System.Collections.Generic; using System.Text;
namespace Handyprojekt {
internal class Simkarte { private Provider prov; private String nr;
public void setzeProvider(Provider p) { prov = p; } public void setzeNummer(String nummer) { nr = nummer; }
public void sendeNachricht(String nachricht, String nummer) { prov.Nachricht(nachricht,nummer); } } } |
Handy:
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:
| using System; using System.Collections.Generic; using System.Text;
namespace Handyprojekt { class Handy { private Simkarte sim;
public void setzeSimkarte(Simkarte s) { sim = s; } public void sendeNachricht(String nachricht, String nummer) { sim.sendeNachricht(nachricht, nummer); } } } |
Provider:
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:
| using System; using System.Collections.Generic; using System.Text;
namespace Handyprojekt {
class Provider { private String na; private String nr; public void Nachricht(String nachricht, String nummer) { na = nachricht; nr = nummer; } } } |
Mein Ziel:
Zwei Handy Objekte erstellen (Klasse Handy) , zwei Simkarte Objekte erstellen ( Klasse Simkarte) , ein Provider Objekt erstellen (Klasse Provider)
dann möchte ich von einem Handy zum anderen Handy SMS verschicken , was erst durch die Simkarte geht dann zum Provider und von dort zum richtigen Handy . nur ich weiß nicht wie ich Objekte von den Klassen erstellen kann bzw. diese Objekte auf dem Form1 anzeige , um die Methoden und so nutzen kann .....
So jetzt möchte ich von euch bitte wissen wie ich diese Klassen auf dem Form1 benutzen kann und natürlich deren Methoden. Sei es als ein Bild oder für eine Klasse immer ein neues Formular mit Buttons für die Methoden...
Ich habe nämlich mitgekriegt dass man es mit nem UserControl bzw. Control programmiert. Wenn es richtig ist dann bitte ich auch von euch mir zusagen wie es auszusehen hat mit diesem UserControl bzw. Control , wie oder wo programmiere ich diesen UserControl . Kann jemand vielleicht dazu ein Beispiel machen ???
Brauche bitte dringend Hilfe .....
Danke schön schonmal
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Spiritnight - Mo 17.03.08 06:16
Titel: Konstruktor
ich bin selber neu in C Sharp aber ich glaube dir fehlt der Konstruktor.
der sollte in der klasse stehen.
bsp:
public Simkarte() { }
in form 1 erstellst du dann Deine Klasse genau unter:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| public Form1() { InitializeComponent(); } Simkarte Sim1 = new Simkarte();Simkarte Sim2 = new Simkarte(); |
Wenn du nun in einem Knopf eine Methode von Simkarte nutzen möchtest sollte das so aussehen:
C#-Quelltext
1: 2: 3: 4:
| private void button1_Click(object sender, EventArgs e) { Sim1.setzeNummer("0190usw"); } |
Ich habe noch nicht geschlafen und wenn ich gerade mist erzählt habe so verzeih ^^
Aber meines erachtens sollte es so gehen.
Mfg Martin
Th69 - Mo 17.03.08 10:00
Und statt der Methoden 'setzeProvider', 'setzeNummer' etc. solltest du dir mal Eigenschaften (Properties) ansehen:
C#-Quelltext
1: 2: 3: 4: 5:
| public Provider Provider { get { return prov; } set { prov = value; } } |
Benutzung dann einfach:
C#-Quelltext
1: 2: 3:
| Simkarte sim = new Simkarte(); Provider p = new Provider() sim.Provider = p; |
Alternativ könntest du auch gleich die Eigenschaften der Klasse im Konstruktor (mit Parametern) setzen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| class Simkarte { Provider prov; string number;
public Simkarte(Provider p, string nr) { prov = p; number = nr; } ] |
HaShLo - Mo 24.03.08 19:35
ja vielen vielen dank leute werde ich nochmal ausprobieren aber ihr habt mich aber ganz missverstanden glaub ich...
das was ihr dort macht ist , dass ich die methoden aufrufe von den klassen oder wie ich sie mit werten fülle
könnte ihr mir einfach mal nur so sagen wie ich eine selbst erstellte Klasse ganz einfach auf dem Form1 bekomme ???? und zwar in Grafischer Form ich , will also was sehen können wenn ich das Programm starte und dann durch klicken und was auch immer die methoden der klassen aufrufen können , wie kann ich das ermöglichen
Also genauso wie wenn ich einen button auf mein form1 ziehe und dann z.b die größe davon verändern kann die ganzen eigenschaften und das alles halt mit meinen eigenen selbst erstellten Klassen bitte hilft mir
Brauche weiterhin Hilfe und mit beispielen auch noch wenns geht ;)... Danke schön schonmal ;)
JüTho - Di 25.03.08 10:08
HaShLo hat folgendes geschrieben: |
| könnte ihr mir einfach mal nur so sagen wie ich eine selbst erstellte Klasse ganz einfach auf dem Form1 bekomme ???? und zwar in Grafischer Form ich , will also was sehen können wenn ich das Programm starte und dann durch klicken und was auch immer die methoden der klassen aufrufen können , wie kann ich das ermöglichen |
Das ist in dieser Form völlig unmöglich und außerdem widersinnig:
- Alles, was auf ein Formular gezogen werden kann, muss von der Control-Klasse abgeleitet sein; die von Dir erstellten Klassen enthalten aber eine ganz andere Logik als GUI-Elemente.
- Außerdem widerspricht dies den Forderungen der OOP, wo die Klassen die Wirklichkeit abbilden sollen; die Funktionalität eines Providers ist aber etwas ganz anderes als die Darstellung auf einem Formular.
Wenn Du eine solche Darstellung haben willst, musst Du Dir z.B.
UserControls bauen, wo eine MaskedTextBox die Sim-Nr. darstellt usw.
Aber wie gesagt: Die GUI (Graphical User Interface = Benutzerschnittstelle) hat direkt nichts mit inhaltlichen Anforderungen der "Geschäftslogik" (Business Logical Interface) zu tun.
Jürgen
HaShLo - Di 25.03.08 21:48
Hallo Leute
Ich hab jetzt mal so recherchiert und nachgeschaut und habe herausgefunden dass man genau wie der JüTho es gesagt hast ein Usercontrol also ein Controller programmieren muss...
Aber leider weiß ich nicht wie ich an dieses Controller ran gehen soll bzw. es programmieren soll , könnte vielleicht jemand noch ein Beispiel dazu geben wie das mit dem Usercontrol auszusehen hat und wie und wo ich das genau bei C# mache..
Ich würde mich sehr darüber freuen
Ich bedanke mich schonmal
;)
JüTho - Mi 26.03.08 11:07
HaShLo hat folgendes geschrieben: |
| Aber leider weiß ich nicht wie ich an dieses Controller ran gehen soll bzw. es programmieren soll, könnte vielleicht jemand noch ein Beispiel dazu geben wie das mit dem Usercontrol auszusehen hat |
Nein, das ist Deine Aufgabe. Nur der HaShLo weiß, welche Darstellung mit welchen Elementen und welcher Funktionalität er haben will.
HaShLo hat folgendes geschrieben: |
| und wie und wo ich das genau bei C# mache.. |
Falsch formulierte Frage: Bei C# geht es so, dass eine neue Klasse erstellt wird, die von UserControl abgeleitet wird und die die benötigten Controls enthält.
Besser formulierte Frage: Wie und wo mache ich das in meiner IDE? Antwort für Visual Studio und #D:
Projekt-Explorer -> Projekt -> Hinzufügen -> Neue Datei -> UserControl auswählen, passenden Namen von Datei und Klasse vergeben -> Designer öffnen und anfangen.
Jürgen
HaShLo - Fr 28.03.08 15:55
ja ok danke schön JüTho , das ist schonmal ne hilfreiche Angabe mit Pröjekt hinzufügen und sowas werde ich auf jeden fall in den nächsten Tagen mal versuchen ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!