Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MessageBox erscheint nicht
Fiasko
myCSharp.de - Member



Dabei seit:
Beiträge: 1
Herkunft: Eifel

Themenstarter:

MessageBox erscheint nicht

beantworten | zitieren | melden

Moin.

Mein Ziel ist es ein Memory Spiel zu erstellen. Wenn 2 Karten aufgedeckt sind soll eine MessagBox erscheinen.

Momentan bin ich rum am experimentieren... aber ich schaffe es einfach nicht das eine MessageBox erscheint... überlegt habe ich das ich die Variable count hochtzähle... aber irgendwas mahe ich falsch...

Hauptprogramm:
[Zitat]


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Würfel_ohneDesigner
{
    
    public partial class Form1 : Form
    {
       // Spielkarte[] ska = new Spielkarte[3];
        Spielkarte[,] ska2 = new Spielkarte[3,3];
        Spielkarte[,] ska3 = new Spielkarte[3, 3];
        Spielkarte[,] sk2, sk3;
        int count = 0;

                   

        public Form1()
        {
            int x, y;
            int Spalte = 300;
            int Zeile;
            int Abstand = 520;
            Button bTmp;
            Image vTmp, hTmp = Image.FromFile("batman.jpg");
          
            InitializeComponent();

            //1.Schleife----------------------------------   
            for (Zeile = 0; Zeile < ska2.GetLength(1); Zeile++)
            {
                // Zeilenweise
                y = 50 + Zeile * 120;

                for (Spalte = 0; Spalte < ska2.GetLength(0); Spalte++)
                {
                    // Spaltenweise

                    x = 30 + Spalte * 170;


                    bTmp = new Button();
                    bTmp.Name = "Button " + Spalte.ToString();
                    bTmp.Size = new Size(100, 100);
                    bTmp.Location = new System.Drawing.Point(x, y);
                    bTmp.Click += new EventHandler(btn_Click);

                    this.Controls.Add(bTmp);

                    vTmp = Image.FromFile(Spalte.ToString() + Zeile.ToString() + ".bmp");

                    ska2[Zeile, Spalte] = new Spielkarte(bTmp, vTmp, hTmp);

                    bTmp.Name = "Button " + Spalte.ToString() + " " + Zeile.ToString();


                    x = 30 + Spalte * 170 + Abstand;


                    bTmp = new Button();
                    bTmp.Name = "Button " + Spalte.ToString();
                    bTmp.Size = new Size(100, 100);
                    bTmp.Location = new System.Drawing.Point(x, y);
                    bTmp.Click += new EventHandler(btn_Click1);

                    this.Controls.Add(bTmp);

                    

                    ska3[Zeile, Spalte] = new Spielkarte(bTmp, vTmp, hTmp);

                    bTmp.Name = "Button " + Spalte.ToString() + " " + Zeile.ToString();

                    if (count == 2)
                    {
                        MessageBox.Show("Loslos");
                    }
                    else
                    {
                    }

                    
                }
            }
            //if (sk2.VordergrundBild == sk3.VordergrundBild) ;     

                    


            // --------------------------------------------
        }
        private void btn_Click(object sender, EventArgs e)
        {
            count = count + 1;
            Button b = (Button)sender;

            string[] Teil = b.Name.Split();
            int i = int.Parse(Teil[2]);
            int x = int.Parse(Teil[1]);// Teil[0] enthält "Button"

            if (count == 2)
            {
                MessageBox.Show("HALLO");
            }
            else
            {
                count = count + 1;
                ska2[i, x].aufdecken();
            }
        }
        //------------------------------------------------
        private void btn_Click1(object sender, EventArgs e)
        {
            count = count + 1;

            Button b = (Button)sender;

            string[] Teil = b.Name.Split();
            int i = int.Parse(Teil[2]);
            int x = int.Parse(Teil[1]); // Teil[0] enthält "Button"

         

            if (count == 2)
            {
                MessageBox.Show("HALLO");
                Test();
            }
            else
            {
                count = count + 1;
                ska3[i, x].aufdecken();
            }
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Test()
        {
            MessageBox.Show("HALLO");

        }
      

    }
}
[/Zitat]


Klasse:
[Zitat]


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Würfel_ohneDesigner
{
    class Spielkarte
    {
        private Button btn;
        public Image VordergrundBild;
        public Image HintergrundBild;


        public Spielkarte(Button btn, Image VordergrundBild, Image HintergrundBild)
        {
            this.btn = btn;
            this.VordergrundBild = VordergrundBild;
            this.HintergrundBild = HintergrundBild;

            this.btn.Image = HintergrundBild;
        }
        public void aufdecken()
        {
            btn.Image = VordergrundBild;
        }
        public void zudecken()
        {
            btn.Image = HintergrundBild;
        }
    }
}
[/Zitat]

Ich hoffe ihr könnt mir weiterhelfen...

Mfg Fiasko
Der Hunde blieb mir im Sturme treu, der Mensch nicht einmal im Winde!

TRY & ERROR
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

einfach den gesamten quellcode zu posten und zu fragen, wo der fehler sein könnte, ist gegen die regeln. kannst du nciht zumindest auf wenige zeilen einschränken?
veasel
myCSharp.de - Member



Dabei seit:
Beiträge: 327
Herkunft: M-V

beantworten | zitieren | melden

Hallo,

erstmal hat JAck30lena recht!!!

ABER:

habs nur schnell überflogen:

diese Methode!!


 private void btn_Click(object sender, EventArgs e)
        {
            count = count + 1;
            Button b = (Button)sender;

            string[] Teil = b.Name.Split();
            int i = int.Parse(Teil[2]);
            int x = int.Parse(Teil[1]);// Teil[0] enthält "Button"

            if (count == 2)
            {
                MessageBox.Show("HALLO");
            }
            else
            {
                count = count + 1;
                ska2[i, x].aufdecken();
            }

Schreibtischtest:
count = 0;
dann rechnest du +1
dann kommt dein vergleich ==2 -> false
im else erhöhst du -> count = 2

nächster druchlauf
du erhöhst count -> jetzt steht da schon ne 3
und dein vergleich auf 2 wird niemals erreicht ergo wirst du auch nie ne mbox sehen.

aber ein durchlauf mit dem debugger hätte dir das auch gezeigt denke...

vielleicht hab ich aber auch was übersehen!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von veasel am .
MFG Veasel
private Nachricht | Beiträge des Benutzers