Laden...

Forenbeiträge von Lizz4rd Ingesamt 8 Beiträge

08.12.2017 - 11:10 Uhr

Nimm es mir nicht krum: Aber versuch mal den FAQ zu verstehen. Allein die Skizze im ersten Beitrag von herbivore wird deine Frage beantworten.
Bzw. erläutere, was du daran nicht verstehst.

Wir sind zwei Dinge nicht klar.
Erstens:
Muss ich damit die Kommunikation funktioniert in meiner Form1 eine neue Form erstellen oder genügt es wenn ich bei meinem Projekt eine neue Form hinzufüge.
Ich dachte ich füge eine zweite Form im Projekt hinzu da sich ja Form1 und Form2 laut FAQ nicht kennen sollen.
Zweitens:
Ich habe in meiner Form1 jetzt abgefragt ob ich den Button gedrückt habe und das auf ein Event übertragen.Dieses Event ist public. Warum ist es mir nicht möglich in Form2 auf das Event das public ist zuzugreifen?

Edit habs schon geschaft nur is dieser Code auch praktisch?
Form1:


public partial class Form1 : Form
    {
        public delegate void ButtonClicked(object sender, EventArgs r);
        public static event ButtonClicked firstbtn;

        public Form1()
        {
            InitializeComponent();
            Form2 f2 = new Form2();
            f2.Show();

        }
        public void button1_Click(object sender, EventArgs e)
        {
            firstbtn(sender, e);
        }
    }

Form2:

public partial class Form2 : Form
    {

        public Form2()
        {
            InitializeComponent();
            Form1.firstbtn += btn1_Click;
        }
        void btn1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello");
        }
    }
08.12.2017 - 09:49 Uhr

Erstmal danke für die Antwort.
Ich habe die FAQ bereits dazu gelesen aber ich komme immer nochnicht auf die Lösung.
Ich hab mir sämtlich Beispiele zu den Events angesehn aber ich verstehe noch immer nicht wie ich dieses Event in einer anderen Form abfrage.


public Form1()
        {
            Form2 f2 = new Form2();
            f2.Show();
        }
        public event EventHandler ButtonFirstFormClicked;
        public void button1_Click(object sender, EventArgs e)
        {
            if (ButtonFirstFormClicked != null)
            {
                ButtonFirstFormClicked(sender, e);
            }
        }
    }

Hier erstelle ich mein Event das den Klick auf den Button erkennen soll.
Aber wie kann es dann in der andereren Form aufgerufen werden.

07.12.2017 - 19:51 Uhr

Hallo!
Ich glaube mein Problem ist ziemlich einfach zu lösen aber ich komme einfach nicht dahinter.
Ich habe 2 verschiedene Forms mit jeweils einem Button.
Jetzt möchte ich in Form 2 abfragen ob der Button in Form1 gedrückt ist.
Und umgekehrt in Form1 abfragen ob der Button in Form 2 gedrückt worden ist.

Vielen Dank schon einmal für die Hilfe

Grüße

27.10.2017 - 17:05 Uhr

Tatsächlich ist die gesamte Methode auch nur 5 Zeilen lang und du brauchst nur eine einzige lokale Variable (statt 4). Schau dir dafür mal
>
an. Werd' außerdem die Inline-Methode los, in diesem Fall bringt die dich nur dazu, sie mehrfach aufzurufen: bedenke, dass bei jedem Aufruf von IstPrim() eine Schleife durchlaufen wird, die für sehr große Zahlen eine Weile brauchen wird. Jeder zusätzliche Aufruf dauert dann wieder...

Hört sich gut an. Danke für die Hilfe.

26.10.2017 - 20:15 Uhr

Du willst für eine vorgegebene Zahl r zwei beliebige aufeinander folgende Primzahlen, die kleiner sind als [EDIT] eine zufällige Zahl, die kleiner ist als r[/EDIT]?

Ich habs eher so gemeint: Ich erzeuge eine Zufallszahl zwischen 0 und r. Dann uberprüfe ich ob diese eine Primzahl ist --> Nein --> Zufallszahl um eins erhöhen --> überprüfen
Wenn ich eine finde dann speichere ich diese in der Variable a ab.
Dan erhöhe ich wieder die Zufallszahl und speichere die nächste Primzahl in der Variable b ab.

26.10.2017 - 20:11 Uhr

Dein Random erzeugt keine Zufallszahlen. Du verwendest Random falsch.

Bei mir sollen nur einmal eine Zufallszahl im Gesamten Program ausgegebn werden. Was es auch glaube ich tut, da jedes mal (wen ich das Program ausführe ) zwei andere Primzahlen angezeigt werden.

Mit herauslösen habe ich gemeint das ich im Main die Variable a und b ,die zurückgegeben werden, einzeln aufrufen kann um sie später bei einer Multiplikation zu verwenden.

Sry wegen der Sache mit dem String hab mich da vertan.

26.10.2017 - 20:05 Uhr

Okay danke.
Sorry wegen der Sache mit dem String. Da habe ich mich wohl vertan 🤔.
Das werde ich mir mal ansehen.

26.10.2017 - 00:00 Uhr

Hallo!
Ich programmiere erst seit 1nem Monat C#. Zurzeit programmiere ich an einem Programm das zufällige Primzahlenpartner generiert. Diese Primzahlen möchte ich später noch getrennt voneinander verwenden.
Das Programm funktioniert einwandfrei (wenn auch ein wenig umständlich geschrieben). Danach habe ich eine Bibliothek erstellt das Programm dort hineingepackt und in einem Main aufgerufen.
Funktioniert ebenfalls --> ich bekomme dann als Ergebnis zum Beispiel 17,19 welche sich in einem String befinden --> wie löse ich jetzt also die Zahlen heraus.
Schon mal danke im voraus.


public static Tuple<int, int> Rdmprim(int r)
        {
            int y = 0;
            int a = 0;
            int b = 0;
            int z = 0;

            Random k = new Random();
            int w = k.Next(0, r); // Zufallszahl zwischen 0 und der Eingegebenen Zahl

            for (int i = 2; y <= 2; i++)
            {
                z = z + y;      //Wert um zu überprüfen ob a bereits einen Wert hat

                if (IstPrim(w) == true && y == 0)   //Primzahlgefunden und kein Wert in b
                {
                    a = w;
                    y++;
                }
                if (IstPrim(w) == true && z + i > i) //Primzahlgefunden und ein Wert in a
                {
                    b = w;
                    y++;
                    break;
                }
                else                          // Zufallszahl keine Primzahl --> +1
                {
                    w++;
                }
            }
            bool IstPrim(int x)     //Primzahlermittlung
            {
                x = w;

                for (int i = 2; i < Math.Sqrt(w) + 1; i++)
                {
                    if (w % i == 0)
                        return false;
                }
                return true;

            }
            return new Tuple<int, int>(a, b);
        }