Visual Studio – die neusten Beiträge

Excel in VS einbinden?

Hallo,

aktuell erstelle ich ein Programm mit C#, welches Daten, die ich eingebe, in Excel einfügt. Um Excel zu verwenden, habe ich das EPPlus NuGet-Paket installiert. Irgendwie gab es dort Probleme mit dem Zugriff (Datenschutz). Daher wollte ich die Excel-Datei direkt in Visual Studio einfügen und sie so direkt bearbeiten. Dafür bin ich auf die Projektmappe gegangen, habe einen Rechtsklick gemacht, "Hinzufügen" ausgewählt, dann "Vorhandenes Element" und schließlich die zuvor erstellte (gespeicherte .xlsx) Datei aus Excel ausgewählt.

Danach kam immer die Meldung: "Entweder wird das Dokumentformat nicht unterstützt, oder das Dokument enthält binäre Zeichen, die mit einer anderen Anwendung geöffnet werden müssen."

Ich kann die Meldung bestätigen, und die Excel-Datei wird im Projektfenster als Element angezeigt. Allerdings funktioniert mein Code nicht, weil die Excel-Datei nicht richtig eingebunden wurde.

Zur Excel-Datei:

Ich habe in Excel einfach eine leere Arbeitsmappe erstellt und diese in einem leeren Ordner als "Ernährungsdaten.xlsx" abgespeichert, natürlich ohne Schreibschutz.

Wie man am Namen erkennen kann, geht es um Ernährungsdaten, die verarbeitet werden. Später kommen auch noch Datenbanken usw. hinzu und Vorgänge werden automatisiert. Allerdings muss ich jetzt erst einmal die Excel-Datei richtig einbinden.

Ich hoffe, Ihr könnt mir helfen.

Danke im Voraus.

Microsoft Excel, C Sharp, Visual Studio

Box collider funktioniert nicht mit rb.MovePosition?

Ich habe mit Unity angefangen und habe ein kleines problem:
Und zwar habe ich eine kamera mit boxcollider und einen terrain mit terraincollider. Nur leider kann ich die kamera durch das terrain durchschieben! Ich habe schon den verdacht dass es an rb.MovePosition liegt aber weiß nicht wie ich das reparieren kann! Alles wie zumbeispiel rigidbody sind auf der kamera da bin ich mir sicher! Es kommt auch kein Fehler in der Konsole!
Mein Kompletter code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SmoothMove : MonoBehaviour
{
   public float rotationSpeed = 2.0f;
   public float smoothRotationFactor = 5.0f;
   private float yaw = 0.0f;
   private float pitch = 0.0f;

   public float jumpForce = 10.0f;
   public float moveSpeed = 20.0f;
   private Rigidbody rb;
   private bool isMovingForward = false;

   private void Start()
   {
       rb = GetComponent<Rigidbody>();
   }

   private void Update()
   {
       HandleCameraRotation();

       if (Input.GetKeyDown(KeyCode.Space))
       {
           Jump();
       }

       if (Input.GetKeyDown(KeyCode.UpArrow))
       {
           StartMovingForward();
       }

       if (Input.GetKeyUp(KeyCode.UpArrow))
       {
           StopMovingForward();
       }

       if (isMovingForward)
       {
           MoveForward();
       }
   }

   private void HandleCameraRotation()
   {
       if (Input.GetMouseButton(0))
       {
           yaw += rotationSpeed * Input.GetAxis("Mouse X");
           pitch -= rotationSpeed * Input.GetAxis("Mouse Y");
           Quaternion targetRotation = Quaternion.Euler(pitch, yaw, 0.0f);
           transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * smoothRotationFactor);
       }
   }

   private void Jump()
   {
       rb.velocity = new Vector3(rb.velocity.x, rb.velocity.y + 5, rb.velocity.z);
   }

   private void StartMovingForward()
   {
       isMovingForward = true;
   }

   private void StopMovingForward()
   {
       moveSpeed = 20f;
       isMovingForward = false;
   }

   private void MoveForward()
   {
       moveSpeed += 0.1f;
       Vector3 forwardDirection = transform.forward;
       forwardDirection.y = 0.0f; // Keep movement on the horizontal plane
       rb.MovePosition(rb.position + forwardDirection * moveSpeed * Time.deltaTime);
   }
}

Ich würde mich sehr freuen wenn ihr mir helft. Danke :)

C Sharp, Code, Programmiersprache, Spieleentwicklung, Unity 3D, Visual Studio, Unity

Hallo ich habe ein Code in Unity wo es eine Fehlermeldung gibt die ich nicht verstehe. Könnt ihr mir helfen?

Die Fehlermeldung lautet

Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand

Fehler CS1061 "Animation" enthält keine Definition für "SetBool", und es konnte keine zugängliche SetBool-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ "Animation" akzeptiert (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis). Assembly-CSharp C:\Users\Me\2d platform\Assets\Player.cs 27 Aktiv

Der ganze Code ist

public class Player : MonoBehaviour

{

  public float speed = 5;

  private Rigidbody2D rb;

  public float jumph = 5;

  private bool ig =false;

  private Animation anim;

  // Start is called before the first frame update

  void Start()

  {

    rb = GetComponent<Rigidbody2D>();

    anim = GetComponent<Animation>();

  }

  // Update is called once per frame

  void Update()

  {

    float richtung = Input.GetAxis("Horizontal");

    if(richtung != 0)

    {

      anim.SetBool("IsRunning", true);

    }

    else

    {

      anim.SetBool("IsRunning", false);

    }

    transform.Translate(Vector2.right * speed * richtung * Time.deltaTime);

    if (Input.GetKeyDown(KeyCode.Space) && ig)

    {

      rb.AddForce(Vector2.up * jumph, ForceMode2D.Impulse);

      ig = false;

    }

  }

  private void OnCollisionEnter2D(Collision2D collision)

  {

    if(collision.gameObject.tag == "g")

    {

      ig = true;

    }

  }

}

C Sharp, Code, Programmiersprache, Visual Studio, Unity, unity 2d

mehrere Zahlen ausrechnen Windows Forms Taschenrechner?

Hallo,

Ich habe folgendes "Problem", habe meinen TR soweit hinbekommen, dass er Zahl 1 (+-*/) Zahl 2 ausrechnen kann. Nun soll ich Zahl 1 (+-*/) Zahl 2 (+-*/)Zahl 3,... ausrechnen können, stehe dabei leider irgendwie vor einer Wand und bekomme es nicht hin.

Hier der code: (etwas abgekürzt, da sonst zu lang)

Kopf=

Imports System.CodeDom
Public Class form1
  Public Property zahl As String = ""
  Public Property calc As String = ""

Bei alle Zahlen (0-9 sowie .)=

 Private Sub b1_Click(sender As Object, e As EventArgs) Handles b1.Click
    tb.Text += "1"
  End Sub

Delete Button=

 Private Sub bdel_Click(sender As Object, e As EventArgs) Handles bdel.Click
    If (tb.Text.Length > 0) Then
      tb.Text = tb.Text.Substring(0, tb.Text.Length - 1)
    End If
  End Sub
  End Sub

Gleich Button=

 Private Sub bsolve_Click(sender As Object, e As EventArgs) Handles bsolve.Click
    If (calc = "+") Then
      tb.Text = Val(zahl) + Val(tb.Text)
    End If
    If (calc = "-") Then
      tb.Text = Val(zahl) - Val(tb.Text)
    End If
    If (calc = "*") Then
      tb.Text = Val(zahl) * Val(tb.Text)
    End If
    If (calc = "/") Then
      tb.Text = Val(zahl) / Val(tb.Text)
    End If
  End Sub

bei allen Operatoren= (+,-,*,/)

Private Sub bplus_Click(sender As Object, e As EventArgs) Handles bplus.Click
    zahl = tb.Text
    calc = "+"
    tb.Text = ""
  End Sub

Vielen Dank schonmal

Visual Studio, Windows Forms

C# Versuch zwei?

Guten Morgen,

ich bin gerade dabei mit dem Programmieren bei C# Anzufangen und bräuchte mal ein wenig Hilfe. Ich habe bis jetzt diesen Code:

using System;
namespace roboter
{
  class Program
  {
    static void Main(string[] args)
    {
      string antwort;
      bool antwortOk;
      string antwortRobo;
      bool antwortOkRobo;
      {
        do
        {
          Console.WriteLine("Guten Tag Herr Baumann, möchten sie meinen Roboter starten? [Ja|Nein]");
          antwort = Console.ReadLine();
          antwortOk = antwort.ToLower() == "ja" || antwort.ToLower() == "nein";
          if (!antwortOk)                                              //Nur die Frage, ob man es starten will
          {
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
        } while (!antwortOk);
        do
        {
          Console.WriteLine("Ist die Wand schon da?");
          antwortRobo = Console.ReadLine();
          antwortOkRobo = antwortRobo.ToLower() == "ja" || antwortRobo.ToLower() == "nein";
          if (!antwortOkRobo)                                              //Nur die Frage, ob man es starten will
          {
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
          Console.WriteLine("Schritt");
        } while (!antwortOkRobo);
        Console.WriteLine("Drehung");
         
        do
        {
          Console.WriteLine("Möchten Sie eine weitere Aufgabe Berechnen? [Ja|Nein]");
          antwort = Console.ReadLine();
          antwortOk = antwort.ToLower() == "ja" || antwort.ToLower() == "nein";
          if (!antwortOk)
          {                                                    //Nur Frage, ob man ihn nochmal starten soll
            Console.WriteLine("Bitte geben Sie Ja oder Nein ein");
          }
        } while (!antwortOk);
      } while (antwort.ToLower() == "ja") ;
      Console.WriteLine("Bis zum nächsten Mal!");
      Console.ReadKey();
    }
  }
}

Ich würde gerne, dass er nur den Schritt macht, wenn man nein sagt. Und wenn man ja sagt, soll er sich nur drehen und keinen Schritt machen, wie kann ich das am besten umsetzen?

C Sharp, Visual Studio

Ä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

Meistgelesene Beiträge zum Thema Visual Studio