Zugriff auf Objekte

Hallo

Also die beispiel habe ich alle schon mal ausprobiert es ist aber nicht das was ich will.

nun nochmal.

Ihr sagt Interfaces Schnittstellen.

kann mir da einer mal ein bsp zeigen.

in meinen Büchern wird darüber nur 2 Seiten geschrieben.
Wenn ich ein beispiel ausprobiere.

public class Form1 : System.Windows.Forms.Form,formular1

Formular ist mein Interface

mein Interface sieht so aus ein BSP uas dem buch
interface formular1

{

bool textbox
{
get;
set;
}


als fehler kommt
'oop.Form1' implementiert den Schnittstellenmember 'oop.formular1.textbox' nicht

was ist damit gemeint

kennt jemand ein Buch wo es für dummies erklärtt und auch mit Beispielen gezeigt wird?

Danke
 
Also, so wie ich das ganze jetzt sehe:

Ein Interface rentiert sich nur dann, wenn du bei allen Formularen das gleiche machen willst. Sprich die gleichen Methoden aufscheinen sollen. Jetzt wirst du vermutlich nicht auf jeder Form die gleichen TextBoxen haben.

Definier dir einfach public Properties, die das tun, was du machen willst. Mehr Aufwand benötigst du hier nicht.
 
Hallo

Mit public properties denke ich gehts aber ich weiß nicht wie ich

aus Form2 zugreife

habe es so gemacht

Form1

public string setztetext
{
set
{
textBox1.text=value;
}
get
{
return textBox1.text;
}
}


wenn ich aus Form2 folgendes mache

Form1 frm1 = new Form1();
frm.setzetext="Hallo";

dann passiert in Form1 gar nichts weil ich denke es wird eine neue Form1 erzeugt die unsichtbar ist aber das will ich nicht,

wenn icjh nun folgendes mache kommt ein fehler
Form1 frm1;
frm.setzetext="Hallo";

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


Genau das wil ich nicht

Es muß doch einen geben der mir sagen kann wie ich ohne new Form1()
auf die sichtbare zugreifen kann?

Danke
 
Naja, du musst dir die Instanz der entsprechenden Form schon "merken" ... Sprich du musst sie global für die aufrufende Form definieren.

Hier stellt sich die Frage, ob es für dich nicht reicht, nur beim Aufruf der entsprechenden Form Daten mitzugeben, oder muss das zu einem späteren Zeitpunkt auch möglich sein? Wenn ja, warum?
 
bocian hat gesagt.:
Hallo
wenn ich aus Form2 folgendes mache

Form1 frm1 = new Form1();
frm.setzetext="Hallo";

dann passiert in Form1 gar nichts weil ich denke es wird eine neue Form1 erzeugt die unsichtbar ist aber das will ich nicht,

wenn icjh nun folgendes mache kommt ein fehler
Form1 frm1;
frm.setzetext="Hallo";

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


Genau das wil ich nicht

Es muß doch einen geben der mir sagen kann wie ich ohne new Form1()
auf die sichtbare zugreifen kann?

Danke

Du musst aber deine Form instanzieren. Und hier eben folgendermaßen:

Code:
public class Form2....

   Form1 form1 = null;

   // ctor
   public Form2() {
       form1 = new Form1;
   }

    // irgendein event einer TextBox auf Form2
   private TextBox1_ValueChanged(object sender .....) {
       form1.setzeDenWert = TextBox1.Text;
   }
}

Alles klar?
 
Hallo

Habe ich gemacht aber leider steht in meiner offenen Form1 in der TextBox1 nur der standart und nicht mein zugewiesener text ich denke mir durch form1= new Form1();
wird wieder eine neue From erzeugt die wiedre erst sichtbar gemacht werden muß genau das will ich aber nicht ich will wie im guten VB 6


So habe jetzt mal VB.Net gespielt und da gehts sehr gut genau wie ich es will.

Man neme eine Form definiere
Public shared Frm1 As Form1


Public Sub new()

Frm1=me

end Sub


In form2


irgendwo in einen Ereigniss

Form1.Frm1.TextBox1.Text = "hallo"


und siehe da in Form1 TextBox1 steht jetzt hallo


warum gibt es in C# kein shared.

Wie gehts dorrt


Danke
 
Zuletzt bearbeitet:
Zurück