Ändern des Bildes einer PictureBox per code Funktioniert nicht?

Wie der Fragetitel schon sagt bekomme ich es aus irgendeinem Grund nicht hin das Bild einer PictureBox in meiner Windows Forms App zu ändern. Ich habe glaube schon fast zwei Stunden lang rumprobiert und im Internet nach Lösungen gesucht und leider nichts hilfreiches gefunden. Sogar ChatGPT konnte mir bei der Sache nicht helfen.

Es geht um folgendes:
Ich möchte das beim drücken auf die PictureBox das aktuelle Bild durch ein anderes ersetzt wird. Dazu benutze ich folgenden Code:

private void pictureBox62_Click(object sender, EventArgs e)
        {
            if (pictureBox62.Image.Equals(Properties.Resources.purple_heart_full))
            {
                Debug.WriteLine("malaka");
                pictureBox62.Image = Properties.Resources.purple_heart;
            }
            else
            {
                Debug.WriteLine("malaka2");
                pictureBox62.Image = Properties.Resources.purple_heart_full;
            }


            pictureBox62.Refresh();
        }

Ich habe das Bild im Designer auf "purple_heart" gesetzt. Wenn ich also auf das Bild klicke ändert er es auch zu "purple_heart_full". Aber egal wie oft ich wieder auf das Bild klicke spuckt das Debug fenster immer nur "malaka2" aus obwohl das Bild beim ersten klicken doch auf "purple_heart_full" geändert worden ist. Ich bin langsam am verzweifeln.

Ich freue mich über jede Hilfe die ich kriegen kann.

programmieren, C Sharp, Visual Studio
Fehler im Skript?

Ich probiere gerade ein eigenes Jump and Run Spiel zu Programmieren. Ich wollte eigentlich gerade testen ob ich jetzt mit Lehrtaste springen kann aber dann kahm dieser Error : Assets\Script\Charackter.cs(24,5): error CS8803: Top-level statements must precede namespace and type declarations.

So sieht mein Code aus : using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Charackter : MonoBehaviour

{

  public float speed = 5.0f;

   

  public Vector3 jump;

  public float jumpForce = 2.0f;

   

  public float jumpHeight = 7f;

  public bool isGrounded;

  private Rigidbody rb;

}

  // Start is called before the first frame update

  void Start()

  {

    speed = 5.0f;

    rb = GetComponent<Rigidbody>();

     

  }

  // Update is called once per frame

  void Update()

  {

    if (Input.GetKey(KeyCode.W))

    {

      transform.Translate(Vector3.forward * Time.deltaTime * speed);

    }

    if (Input.GetKey(KeyCode.S))

    {

      transform.Translate(-1 * Vector3.forward * Time.deltaTime * speed);

    }

    if (Input.GetKey(KeyCode.A))

    {

      transform.Rotate(0, -1, 0);

    }

    if (Input.GetKey(KeyCode.D))

    {

      transform.Rotate(0, 1, 0);

    }

  if (isGrounded)

  {

    if (Input.GetButtonDown("Jump"))

    {

      rb.AddForce(Vector3.up * jumpHeight);

    }

  }

  void OnCollisionEnter(Collision other)

  {

    if (other.gameObject.tag == "Ground")

    {

      isGrounded = true;

    }

  }

  void OnCollisionExit(Collision other)

  {

    if (other.gameObject.tag == "Ground")

    {

      isGrounded = false;

    }

  }

}

  Ich währe sehr Dankbar um Hilfe da ich nicht so viel Ahnung von diesem Thema habe.

Lg

C Sharp, Visual Studio, Unity
Probleme beim starten von mp4 Dateien mit C# Windows Forms App?

Wie es der Titel schon beschreibt habe ich Probleme damit .mp4 Dateien per Button mit meiner Windows Forms App zu starten.

Probiert habe ich es zb. schon hiermit:

private void materialButton18_Click(object sender, EventArgs e)
        {
            string filePath = @"C:\Program Files\VBC-Files\Backgrounds\NSFW\AlbedoXLupusNormal.mp4";
            if (!File.Exists(filePath))
            {
                MessageBox.Show("Please download the backgrounds first.", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                System.Diagnostics.Process.Start(filePath);
            }
        }

Allerdings erhalte ich dann Fehler Meldungen wie diese hier: (Programm schmiert nach drücken des Buttons ab)

System.ComponentModel.Win32Exception: 'An error occurred trying to start process 'C:\Program Files\VBC-Files\Backgrounds\NSFW\AlbedoXLupusNormal.mp4' with working directory 'C:\Users\Anwender\source\repos\Votexs Background Changer\Votexs Background Changer\bin\Debug\net6.0-windows'. The specified executable is not a valid application for this OS platform.'

Ich habe auch schon versucht zb. von Windows Media Player den Pfad anzugeben, was nicht direkt in einem crash des Programms endet, allerdings öffnet sich dann halt einfach nichts.

System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Windows Media Player\wmplayer.exe", fileName);

Mit .exe Dateien habe ich dieses Problem nicht und verstehe nicht warum er bei .mp4 Dateien so faxen macht.

Ich bin für jegliche Hilfe sehr dankbar.

MP4, Datei, programmieren, C Sharp, Visual Studio
Was heißt diese C# Fehlermeldung und wie löst man das Problem?

Hallo,

Ich bekomme immer diese Fehlermeldung beim ausführen:

System.ArgumentException: "Format of the initialization string does not conform to specification starting at index 0."

Das ist mein Code:

using System;
using MySql.Data.MySqlClient;
namespace Database_projekt
{
  class Program
  {
    static void Main(string[] args)
    {
      string verbindungsdaten = "SERVER=localhost;" + "DATABASE=dtbs;" + "UID=admin;" + "PASSWORD=Wasd200!;";
      MySqlConnection verbindung = new MySqlConnection("verbindungsdaten");

      Console.WriteLine("Bitte geben sie die Artikelnummer ein.");
      int artikelnummer = int.Parse(Console.ReadLine());

      Console.WriteLine("Bitte geben sie den Fahrradtyp ein.");
      string typ = Console.ReadLine();

      Console.WriteLine("Bitte geben sie die Farbe ein.");
      string farbe = Console.ReadLine();

      Console.WriteLine("Bitte geben sie den Preis ein.");
      Console.WriteLine("Euro: ");
      double preisEuro = double.Parse(Console.ReadLine());
      Console.WriteLine("Cent: ");
      double preisCent = double.Parse(Console.ReadLine());



      string befehl = "INSERT INTO fahrraeder VALUES(" +
        artikelnummer + ",' " +
        typ + " ' ,'" +
        farbe + "' ," +
        preisEuro + "." + preisCent + ");";

      MySqlCommand befehlsobjekt = new MySqlCommand(befehl);
      befehlsobjekt.Connection = verbindung;

      verbindung.Open();
      befehlsobjekt.ExecuteNonQuery();
      verbindung.Close();

      string befehl2 = "SELECT * FROM fahrraeder;";

      MySqlCommand befehlsobjekt2 = new MySqlCommand(befehl2);
      befehlsobjekt.Connection = verbindung;

      MySqlDataReader Reader;
      verbindung.Open();

      Reader = befehlsobjekt2.ExecuteReader();
      while (Reader.Read())
      {
        string zeile = "";
        for (int i = 0; i < Reader.FieldCount; i++) 
        zeile += Reader.GetValue(i).ToString() + " ";
        Console.WriteLine(zeile);
      }


      verbindung.Close();


    }
  }
}

Wie löst man das?

C Sharp, Datenbank, MySQL, Visual Studio

Meistgelesene Fragen zum Thema Visual Studio