Laden...

Forenbeiträge von Martinar Ingesamt 55 Beiträge

28.07.2012 - 10:45 Uhr

Danke, dass Du dir dafür Zeit nimmst chilic

Also im Moment sieht meine in etwa so aus:

    public class myDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IDictionary<TKey, TValue>,IComparable
    {
        public myDictionary() : base() { }
        public myDictionary(IDictionary<TKey, TValue> dictionary) { }

        public bool Exists()
        {
            return this.Count > 0;
        }
    }

Nun hätte ich gerne z.B. so eine Methode

myDictionary["INSDAT"].ToDateTime()

Ich möchte die Methode auf das Ergebnis von TValue beziehen und nicht auf das Dictionary selbst.

28.07.2012 - 10:14 Uhr

Hallo Community,

Ich würde gerne für ein abgeleitetes Dictionary eine neue Methode schreiben.

Das Ergebnis soll in etwa so aussehen:

Dictionary[TKey].NeueMethode()

=> Sie besitzt einen bestimmten Rückgabewert

Meine bisherigen Ergebnisse sahen immer so aus:


Dictionary.NeueMethode()[TKey]

Soll ich die ToString-Methode überschreiben oder ein bestimmtes Interface implementieren, damit ich dieses Problem lösen kann?

Ich hoffe, ihr könnt mir helfen...

Gruß
MartinaR

23.07.2012 - 13:35 Uhr

@Abt
Vielen Dank, hatte bis jetzt immer im Release-Modus programmiert.
Gibt es Guidlines, wie man sein IDE einstellen muss, damit das "Wegoptimieren" nicht stattfindet und die höchste Dichte an Informationen hat.

Habe gerade den Punkt weiter getestet und so springt er unter "Release" in die Unterpunkte:

                string es;
                string tr;
                es = string.Empty;
                try
                {
                    bool b;
                    bool t;
                    
                    if ( d.RowExist())
                    {
                        es = "JA";
                    }
                    else
                    {
                        es="NEIN";
                    }
                }
                catch(Exception ex)
                {
 
                }
                tr = es;

Ich möchte alllen Community-Mitgliedern danken, die mir geholfen haben.

23.07.2012 - 13:25 Uhr

@gfoidl
Wow das war es!!! Aber wie kann das sein? Wird dann im Release-Modus die Variable "es" nicht gefüllt. Den Unterschied von Debug und Relase kann ich doch bestimmt in der MSDN finden oder?

Welche Einstellungen ist besser, wenn man neue Dinge entwickeln will?

23.07.2012 - 13:21 Uhr

@Sarc
Laut dem Forum, sind Extension nur für LINQ da.
Und ich glaube Golo Roden, hatte mal einen Microsoft-Menschen mit dieser Aussage zitiert.

23.07.2012 - 13:18 Uhr

Ich habe mal ein Screenshot erstellt, was beim Debuggen passiert.

Gruß
Martinar

23.07.2012 - 13:10 Uhr

Hallo gfoidl,

also der Debugger springt von

if ( d.RowExist())

nach

                    }
//springt hier hin

Danke für die Guidelines, werde Sir mir mal anschauen und entscheiden, ob ich sie übernehmen werde bzw. intertessante Teile davon.

Aber zum Problem, kannst Du das nachvollziehen?

23.07.2012 - 11:44 Uhr

Hallo Community,

im Moment beschäftige ich mit dem Thema "Vererbung von Dictionary".
Ich würde gerne mein eigenes Dictionary entwerfen und mit eigenen Erweiterungen versehen.

Folgende Klasse habe ich entworfen:

    public class cTest<TKey, TValue> : Dictionary<TKey, TValue>
    {
        public cTest() : base() { }
        public bool RowExist()
        {
            return Convert.ToBoolean(this.Count);
        }
}

Wenn ich nun ein Objekt von dieser Klasse erstelle und die Methode RowExist aufrufe, so wie hier:

cTest<string, object> d = new cTest<string, object>();
                    if ( d.RowExist())
                    {
                        es = "JA";
                    }
                    else
                    {
                        es="NEIN";
                    }
//springt hier hin

Dann wird zwar die Methode ausgeführt, aber die IF-Condition wird nicht ausgeführt.

Habe nun in der MSDN und stackoverflow geschaut,aber nichts brauchbares gefunden. Ich hoffe, dass das kein Grundlagenfehler ist.
Hat jemand einen Rat, was ich noch genauer untersuchen muss, um den Fehler zu finden.

Grüße
Martinar

23.11.2011 - 20:41 Uhr

Ok, danke für deine Antwort.

Schade, dass es so eine Funktion nicht gibt.
Weil ich dachte an sowas wie die Aktivierungsreihenfolge im Visual Studio.

Sollte ja auch nur dienen, damit man ungefähr abschätzen kann, wie es später zur Laufzeit aussehen soll.

23.11.2011 - 16:26 Uhr

Hallo Community,

gibt es eine Möglichkeit in Visual Studio 2010, dass man sich einen Besipieltext z.B. in einer Textbox(oder andere Controls in der Text enthalten sein kann) zur Entwicklungszeit anzeigen lässt, die dann auch die Länge der MaxLength entspricht.

Es soll mir dazu dienen, die Controls im Designer so groß zu erstellen wie auch die MaxLength der Textbox ist.

Gibt es da eine Möglichkeit oder muss ich mir das selber schreiben?

Gruß
martinar

19.08.2011 - 12:53 Uhr

So, ich habe mal in der MSDN geschaut, dort wird aber ein Bild in eine Form gezogen.

Meine Funktion sieht so aus:

if (_movingGraphicObject.ScaleMode)
                {
                    _movingGraphicObject.Transform(e.X - _lastMouseLocation.X, e.Y - _lastMouseLocation.Y);
                    
                }
                else
                {
                    _movingGraphicObject.Move(e.X - _lastMouseLocation.X, e.Y - _lastMouseLocation.Y);
                }

Da Du geschrieben hast, dass das Skalieren analog zum Move ist, komme ich leider nicht mehr weiter. Hast du evtl. noch einen versteckten Tipp für mich.

Ich dachte jetzt an sowas hier:

Point r = new Point(this.PointToClient(e.Location).X,this.PointToClient(e.Location).Y);
                    _movingGraphicObject.Transform(r.X - _lastMouseLocation.X, r.Y - _lastMouseLocation.Y);
18.08.2011 - 13:17 Uhr

Hallo @all,

ich habe mir mal dein Projekt angeschaut und finde es echt gut.

@herbivore

Könnte die Lösung für die Transformation in etwa so aussehen:

  1. Das angeklickte Objekt wird auf Location(0,0) gesetzt
  2. Vergrößert
    und 3. wieder an die ursprüngliche Stelle gesetzt
        public override void Transform(int deltaX, int deltaY)
        {
            Matrix mat1 = new Matrix();
            rect.X = (int)Path.GetBounds().X;
            rect.Y = (int)Path.GetBounds().Y;
            mat1.Translate(-rect.X, -rect.Y);
            Path.Transform(mat1);

            Matrix mat = new Matrix();
            mat.Scale((float)(deltaX / (float)100.0) + (float)1.0, (float)(deltaY / (float)100) + (float)1.0);
            Path.Transform(mat);

            Matrix mat2 = new Matrix();
            mat2.Translate(rect.X, rect.Y);
            Path.Transform(mat2);


            rect.Width = (int)Path.GetBounds().Width;
            rect.Height = (int)Path.GetBounds().Height;


        }

Doch leider bleibt der MouseZeiger nicht an dem Greifer hängen, sondern das Objekt überlappt oder unterlappt den Mauszeiger.

Hast du da evtl einen Tipp, wie man das lösen könnte.
Ich bin der Meinung, dass es Rundungsfehler sein könnten.

02.08.2011 - 10:05 Uhr

Hallo liebe Community,

ein Programm, dass ich schreiben will, soll eine eingebettete Word-Instanz in einer Windows-Form starten und Word-Dokumente in einer Datenbank hinzufügen,ändern oder löschen können.

Nun ist meine Frage, ob man die Office-Autmoatisierung einfach einbinden darf oder ob es dann lizenzrechtliche Probleme geben könnte, da ich das Programm kommerziell verkaufen will.

Hattet ihr schon mal Probleme oder hat jemand schon mal so etwas realisiert?

23.07.2011 - 17:51 Uhr

Gut ok,
weil bei meinem Office 2010 sind keine *.chm Dateien vorhanden.
Dann schau ich mal, ob man einen Prototypen programmieren kann, der dann aus C# eine Word Instanz startet und ein Smart Art Objekt mit Beschrifteung und so, einfügt.

Vielen Dank

23.07.2011 - 14:14 Uhr

Ich hatte mir Antworten von anderen Foren angeschaut und die meinten, dass man keinen Zugriff auf dieses Objekte hat.
Wäre auch für mich neu,da ich schon Excel, Word und Outlook Anbindungen realisiert habe.

Also ist es möglich "Smart Art" Objekte zu erstellen?
Und gibt es noch evtl. *.chm-Dateien für das aktuelle Microsoft Model Object, weil ich habe nur eins von 2002. Das war eine super Hilfedtatei, in der Alle Sachen bezüglich Office drinn waren.

23.07.2011 - 13:58 Uhr

Hallo,

ich wollte aus meiner Anwendung eine Word-Instanz starten und dann über mein Programm "SmartArt"-Objekte in die aktuelle Word-Instanz einfügen.

Laut der MSDN werden grobe Objekte,Methoden und Properties angeboten, aber auf anderen Seiten wird dann wieder behauptet,dass Microsoft das Smart Art Objekt Model nicht freigeben will oder nur eine Schnittstelle über OpenXml dafür anbietet.

Nun wollte ich fragen, ob jemand schon mal Smart Art Objekte in eine Word-Instanz einfügen konnte oder ob die Aussage stimmt, dass Microsoft den Zugriff auf Smart Art Objekte verbietet.

mfg

martinar

17.05.2011 - 15:31 Uhr

Irgendwie bekomme ich die Trennung nicht hin.

public abstract class MyGraphicObject
    {

        private Pen _pen;
        private Brush _brush;
        private bool _bVisible = true;
        private GraphicsPath _path = new GraphicsPath();

        private Point _Location = new Point(100, 100);
        public Point Location
        {
            get { return _Location; }
            set { _Location = value; }
        }

        public MyGraphicObject(Brush brush)
        {
            _pen = new Pen(Color.DimGray, 1);
            _brush = brush;
        }
        protected GraphicsPath Path
        {
            get { return _path; }
        }
        public Pen Pen
        {
            get { return _pen; }
        }
        public Brush Brush
        {
            get { return _brush; }
        }
        public bool Visible
        {
            get { return _bVisible; }
            set { _bVisible = value; }
        }
        public virtual bool Contains(Point pt)
        {
            return _path.IsVisible(pt);
        }

        public virtual void Draw(Graphics g)
        {
            
            g.DrawPath(_pen, _path);
            g.FillPath(_brush, _path);
        }

Ich vermute mal, dass ich das GraphicsPath in eine List<> packen muss,
ist dieser Ansatz riichtig?

Also ich glaube nun das Problem gefunden zu haben:

HIer muss ich etwas ändern,denke ich:

private void MyPanel1_Paint(object sender, PaintEventArgs e)
        {
            base.OnPaint(e);
           
            e.Graphics.SmoothingMode = SmoothingMode.HighQuality;

            _canvas = e.ClipRectangle;
            Region clip = new Region(_canvas);
            clip.Intersect(e.Graphics.Clip);
            e.Graphics.Clip = clip;
            e.Graphics.Clear(Color.White);
            //e.Graphics.TranslateTransform(MyPanel1.AutoScrollPosition.X, MyPanel1.AutoScrollPosition.Y);
            // Der Bereich, der neugezeichnet werden soll, wird auf die Zeichenfläche
            // beschränkt, damit Objekte, die darüber hinausschauen abgeschnitten werden.
            foreach (MyGraphicObject go in _graphicObjects)
            {
                go.Draw(e.Graphics);
            }
            
        }

Aber was???, damit die Rechtecke für sich selbst den Farbverlauf zeichnen...

17.05.2011 - 13:53 Uhr

Dort wo das Wort Cursor steht, könnte ich das Rechteck bewegen, aber das ist ja falsch.
Wie gesagt, meinen Gedanken sind leider nur noch eine breiartige Masse.

Wo und wie muss ich anfangen, die Werte für das Object zu sichern?

17.05.2011 - 13:25 Uhr

Hallo Comunity,
ich versuche gerade aus diesem Tutorial:

[Tutorial] Gezeichnete Objekte mit der Maus verschieben

Noch eine Scrollbar einzubauen.
Aber nun nach 1 1/2 Tagen bin ich nun komplett verwirrt.

Auf der Zeichnung sieht man mein Problem.
Solange die Scrollbar nicht verwendet wird, stimmen die X und Y Koordinaten für das Objet. Aber wenn ich die Scrollbar benutze ,schaffe ich es nicht im OnPaint die Scrollbar-Werte zur bestehenden Location zu addieren.

Ich habe mir die Tutorials von herbivore und progger durchgelesen.
Aber bei dem Tutorial von ErfinderdesRades laufe ich dann komplett gegen die Wand.

Mein Ziel ist folgendes:
Sobald ich eine Object erschaffe und es über _canvas(Fläche der Zeichnung) ziehen möchte, soll die Scrollbar erstellt werden und die Zeichenflache soll um die nötige Fläche erweitert werden und im OnPaint-Event sollen die bestehenden Objekte um die nötigen Koordinaten erweitert werden, so dass der Fehler im Bild unmöglich wird.

Ich hoffe ihr könnt mir helfen...

16.05.2011 - 12:51 Uhr

Ja, dann werde ich die Rechtecke trennen müssen.
Ich werdes es mal versuchen...

Vielen Dank

16.05.2011 - 11:09 Uhr

Hallo Community,

bevor ich mit meinem Problem beginnen möchte, möchte ich sagen, dass die
Tutorials von herbivore,progger und vielen Anderen zu dem dem Thema Paint/onPaint wirklich gut sind.

Ich habe mir den Quellcode von progger zum Üben genommen.

Nun kommt mein Problem:

Den LinearGradientBrush kann ich nicht direkt auf das Rectangle anwenden, sondern es wird auf meinem Panel angewendet.

Ich möchte aber diesen Farbverlauf in jedem gezeichnetem Object darstellen.

Wie kann ich das lösen, dass das LinearGradienBrush im Object wirkt und nicht im Panel.

26.04.2011 - 22:10 Uhr

Oh sorry,

habe meine List von List<string> nach List<object> umgestellt und nun benutze ich Paramter.

Vielen Dank!!!

26.04.2011 - 20:32 Uhr

Vielen Dank FZelle!!!
Es funktioniert jetzt.

26.04.2011 - 20:02 Uhr

Ahhhhhhhh ok, vielen Dank für deine Antwort.

Habe nun die Rowversion in einen byte gepackt und übergebe es nun als Parameter:
WHERE ROWID=@ROWID,

aber trotzdem geht es leider nicht.

26.04.2011 - 19:18 Uhr

verwendetes Datenbanksystem: <SQL Server Express 2008>

Hallo liebe Community,

ich hole mir eine Datensatz inkl. rowversion aus der Datenbank heraus.
Die RowVersion wird in einem string gespeichert.
Nun ist es ein String, der ein System.Byte erhält, da ja die rowversion ein byte[8] ist.

Nun möchte ich, bei einem UPDATE prüfen ob sich die Rowversion geändert hat.


sRowId= Werte[0].ToString();
  • so hole ich den Wert aus dem SELECT-Befehl
    und ja es muss ein string sein.

Und so sieht mein UPDATE-Befehl aus

UPDATE TABLE SET NAME =" + sName + " WHERE WERNR = 1 AND ROWID = " +sRowId

Ja,eigentlich müsste ich Paramter verwenden um so SQL-Injections vorzubeugen,aber ich will es erstmal so lösen.

Habt ihr da eine Idee, wie die RowID wieder richtig konvertieren muss,dass das UPDATE-Befehl den Wert wieder richtig wahrnimmt?

Achja ..."ROWID = Convert(rowversion,' " + sRowid + "')" => geht leider nicht, dann funktioniert die Query, aber es sind 0 Zeilen von dem Befehl betroffen.

Wäre super,wenn Jemand eine Idee dazu hat.

Gruß,
Martina

22.04.2011 - 12:15 Uhr

Danke für deinen Versuch xxxprod...

Aber ich dachte das sowas möglich wäre:


public class cUser
{

private int mnWert1;
private bool mbWert2;
private string msWert3;

private void Funktion()
{
cDB DB = new DB();
DB.SQL("SELECT WERNR,WERT2,WERT3 FROM FIRMA WHERE WERNR =1", mnWert1,mbWert2,msWert3);
}

} 

Weil mein Grundgedanke war eine SELECT INTO Variablen zu schreiben...
Aber gut, wenn das nicht möglich ist.

Wieso hat man diese "params" so beschränkt?
Kann mann denn ein SELECT INTO Variablen realisieren???

22.04.2011 - 11:56 Uhr

Man kann also kein SQL-Result in beliebig viele String einlesen?

22.04.2011 - 11:53 Uhr

Ja ich finde das ja gut, dass ihr mir helfen wollt.

Aber ich brauche diese Sache nur, um es einmal zu testen ob es geht.
Ob ich es je verwenden werde, ist etwas anderes, da werde ich mich dann an deine Tipps halten.

Kannst Du es mal ummodeln, nur wenn es nicht zu viel Arbeit macht

@xxxprod: Wowwwwww,das sieht echt gut aus, ich brauche es aber nur ein Mal für meine Sache,auch wenn es sehr DIRTY ist

22.04.2011 - 11:46 Uhr

Mhhhhhhhhhh ok Schade, danke für euere Antworten.

22.04.2011 - 11:36 Uhr

Aber das geht doch nicht mit params oder?
Kann man da etwas drumherum modeln?^^

Kannst du mir evlt, den head so ummodeln,dass ich beliebig viele Referenztypen übergeben kann, weil mit delegaten kenne ich mich nicht so aus.

Wäre echt super...

22.04.2011 - 11:32 Uhr

Du hast ja recht,
es muss aber bool bleiben.
Gibt es denn keine Möglichkeit Referenztypen da reinzubauen.

22.04.2011 - 11:28 Uhr

achja, da soll auch immer nur ein Datensatz rauskommen.

22.04.2011 - 11:27 Uhr

Es werden die Textboxen nebenbei auch noch mit dem Letzten Wert des DataReaders gefüllt, da du diese immer und immer wieder überschreibst. Un es wird ein IndexOutOfBound geworfen falls dein SQL-Reader mehr Columns hat als du TextBoxen als Parameter übergeben hast.

Grundsätzlich werden SQLCommand, SqlDataReader in using Blöcke geschrieben.

  
if (eReader == null)  
{}  
else if (!eReader.IsClosed || eReader != null)  
{  
    eReader.Close();  
}  
else  
{}  
return false;  

die erste eReader == null Abprüfung lässt sich vermeiden wenn du zweitere Abfrage umdrehst. Und sie lässt sich verhindern wenn du einen using Block schreibst.
M.E. ist dies wirklich schlechter Code und sollte tunlichst vermieden werden.

Das Prüfe ich ja, ob FieldCount == Array.Length

22.04.2011 - 11:26 Uhr

Vielen Dank für die Tipps^^

Kann ich den aus den Wertetypen irgendwie Referenztypen machen?

22.04.2011 - 10:51 Uhr

Hat denn Keiner eine Idee,warum das für die Textboxen geht und für unterschiedliche Werte nicht?

22.04.2011 - 10:37 Uhr

Damit kann sowas ausführen:

DB.SQL("SELECT WERNR,WERUSER FROM FIRMA WHERE WERNR=1", Textbox1, TExtBox2);

22.04.2011 - 10:29 Uhr

Ok sorry, kein Problem!
Evtl hilft ein bisschen Code:

public bool SQL(string psSql, params TextBox[] pTextBox)
            {
                SqlCommand eCmd = null;
                SqlDataReader eReader = null;
                int enBox;

                eCmd = gCon.CreateCommand();
                eCmd.CommandText = psSql;

                enBox = pTextBox.GetLength(0);
                try
                {
                    eReader = eCmd.ExecuteReader();
                    if (eReader.FieldCount == enBox)
                    {
                        if (eReader.HasRows)
                        {
                            while (eReader.Read())
                            {
                                for (int en = 0; en < eReader.FieldCount; en++)
                                {
                                    pTextBox[en].Text = eReader[en].ToString();
                                }
                                
                            }
                        }
                    }
                    eReader.Close();
                    return true;
                }
                catch
                {
                    if (eReader == null)
                    {
                    }
                    else if (!eReader.IsClosed || eReader != null)
                    {
                        eReader.Close();
                    }
                    else
                    {
                    }
                    return false;
                }
            }

Das Funktioniert für Textboxen und nnun möchte so eine Funktion schreiben für einen SQL-String, der dann noch unterscheidet, ob es bool, int oderstring ist.

22.04.2011 - 10:18 Uhr

verwendetes Datenbanksystem: <SQL sServer2008 Express>

Hallo Leute,

vor eineigen Tagen hatte ich folgende Funktion gebaut und glaube auch noch, dass sie funktioniert hatte:

bool bWert
int nWert;
string sWert

DB.SQL("Sql-Statement",bWert,nWert,sWert) ;

Die drei Werte werden als params Variablen übergeben.

Nun kommt mein Problem, leider habe ich von dieser Funktion keine Sicherung gemacht und weiß auch nicht mehr, wie ich das aufgebaut habe und ob das überhaupt ging,
dass man aus einem DataReader,Werte an params Variable binden kann.

Ich habe eine ähnliche Funktion für Textboxen und da funktioniert es,dass ich die Ergebnisse an beliebig viele Textboxen ausgeben kann

Eigentlich bäruche ref params ,aber dasgibt es ja nicht.

07.04.2011 - 12:36 Uhr

Vielen Dank,
es funktioniert.
Ja ich glaube ich sollte mir noch Mal die Grundlagen einverleiben.

07.04.2011 - 11:47 Uhr

Irgendwie geht das nicht , ich habe nun folgenden code aber im Desinder passiert nichts:

 public Pushbutton()
        {
            this.InitializeComponent();
        }
        public override string Text
        {
            get
            {
                return base.Text;
            }
            set
            {
                base.Text = value;
            }
        }
        private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // PushBUtton            // 
            this.Text = "OK";
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.ResumeLayout(false);

        }
07.04.2011 - 11:10 Uhr

Hallo,
Ich habe folgendes Problem:

Ich möchte ein Control schreiben, wobei die Texteigenschaft im Control festgelegt wird und nicht auf einer Form veränderbar ist.
Ich habe nun folgenden Code:

public class PushButton: Button
    {
        private string t = "OK";
        public PushBUtton()
        {
            this.InitializeComponent();
        }
        private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // PushButton            // 
            this.Text = t;
            this.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.ResumeLayout(false);

        }
    }

Doch so bald ich das Neue Control auf eine Form ziehe, steht PushButton1 als TEXT da.
Was mache ich falsch?

02.04.2011 - 22:00 Uhr

Cursor.Current = Cursors.WaitCursor;
Cursor.Current = Cursors.Default;

Das war nur ein Platzhalter...

Vielen Dank für eure Ideen, es funktioniert.

02.04.2011 - 21:06 Uhr

Ja das weiß ich, aber ich würde gerne nur eine Funktion benutzen, die über switch case die einzelnen hover anspricht

02.04.2011 - 18:23 Uhr

Hallo Leute,

mit dieser Funktion steuere ich alle ToolStripButtons in einem ToolStrip, wenn ein Click-Ereignis ausgelöst wird:

private void ToolStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            switch (this.ToolStrip.Items.IndexOf(e.ClickedItem))
            {
                case 0:
                    Cursor.Current = Cursors.WaitCursor;
                    Cursor.Current = Cursors.Default;
                    break;
...

Nun ist meine Frage, ob es auch eine Möglichkeit gibt, über eine Funktion alle Hover Ereignisse in einem ToolStrip zu steuern.

Mein Ziel ist, dass in dem ToolStrip zu jedem Button noch ein Text im Statusstrip erscheint.

Ich hoffe ihr könnt mir helfen...

22.03.2011 - 16:21 Uhr

Hallo,

ich habe ein Klasse und in einer Methode wird eine weitere Klasse instanziert.

Wie bekomme ich nun heraus, zu wem die instanzierte Klasse gehört,also sozusagen der Ersteller ist.

Gibt es da eine Funktion?

In etwa so:

object o = InstanzKlasse."GetOwner" oder so Etwas?

Danke

21.03.2011 - 18:50 Uhr

Ja, auf der Seite war ich schon.
Aber da blicke ich leider nicht durch.

Könnt ihr mir evtl. bei meinem Beispiel helfen??

Gruß
MartinaR

21.03.2011 - 18:29 Uhr

Hallo Leute,

ich habe eine Basisklasse, in der ein Event ist.

Durch die Vererbung in das Kindfenster kann man das Event über ein ButtonClick abfeuern.

Nun würde ich gerne aus der Basisklasse heraus in dem aufgerufenden Event ein neues Event abfeuern, worauf die Kindklasse reagiert => Eine Art Kommunikation zwischen Mutter u. Kindfenster.

Der eine Teil funktioniert, dass das geerbte Event abgefeuert wird. Nur weiß ich nun nicht wie die Basisklasse erkennen kann, dass es ein Kindfenster von sich hat.

Also die Kommunikation von Mutter an Kind geht nicht.

Ich hoffe Ihr könnt mir helfen...

So sieht mein bisheriger Code aus

Basisklasse:

public event EventHandler MyEvent;

        public cForm()
        {
            this.InitializeComponent();
            this.MyEvent += myObject_MyEvent;
        }

        private void OnMyEvent(EventArgs e)
        {
            EventHandler myEvent = MyEvent;
            if (myEvent != null)
            {
                myEvent(this, e);
            }

        }
        private void myObject_MyEvent(Object objSender, EventArgs e)
        {
            MessageBox.Show("Insert");
!!!!!!!!!!!!!!!!!!!!!!Hier soll die Nachricht an die Kindklasse gestartet werden!!!!!!!!!!!!!!!!!!!
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OnMyEvent(EventArgs.Empty);
        }
17.03.2011 - 18:01 Uhr

Naja, ich wollte es in ein bestehendes Menu einhängen evtl.

Hat jemand evtl. ein Beispiel dafür?

17.03.2011 - 14:42 Uhr

Danke für deinen post,aber ich würde gerne dieses Mainmeus verwenden.

17.03.2011 - 12:14 Uhr

Hallo,

ich möchte eine Klasse schreiben die von der Klasse Mainmenu alles erbt.
In dieser geerbten Klasse möchte ich dann, die Menus erstellen und strukturieren.

Diese neue Klassen möchte ich dann in einige Windows Forms zu der bestehen Menüstruktur in den Forms einbinden.

Wie muss ich beginnen und auf was muss ich achten.

Vielen Dank im voraus...