C# Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.?

In meinem aktuellen Code muss ich eine Programm schreiben in welchem es sich zum Employee-Management handelt. Alles funktioniert so weit, doch beim Editieren der Daten kommt folgender Fehler "siehe Überschrift".

        private void button3_Click(object sender, EventArgs e)
        {
            if (EmpIDTB.Text == "" || EmpNameTB.Text == "" || EmpPhoneTB.Text == "" || EmpAddTB.Text == "")
            {
                MessageBox.Show("Missing Information");
            }
            else
            {
                try
                {
                    Con.Open();
                    string query = "update EmployeeTbl set Empname='" + EmpNameTB.Text + "',empadd='" + EmpAddTB.Text + "',emppos='"+EmpPosTB.SelectedItem.ToString()+"',empdob= '"+EmpDateTB.Value.Date+"',empphone='"+EmpPhoneTB.Text+"',empedu='"+EmpEduTB.SelectedItem.ToString()+"',empgen='"+EmpGenderTB.SelectedItem.ToString()+"' where Empid='"+EmpIDTB.Text+"';";
                    SqlCommand cmd = new SqlCommand(query, Con);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Employee Update Successfully");
                    Con.Close();
                    populate();
                }catch (Exception Ex)
                {
                    MessageBox.Show(Ex.Message);
                }
Computer, Schule, programmieren, Windows Forms, Objekt
Powershell - GUI Frage?

Hallo,

ich (neu in Powershell) schreibe gerade für meine Arbeitskollegen ein für die meisten relativ einfaches Programm (mit Windows Forms GUI), das einen bestimmten Ordner wieder aus der Sicherung zurückholt. Hab ein paar Arbeitskollegen die sich mit Ordner kopieren und einfügen etwas schwer tun.

In diesem Programm möchte ich ein Fenster machen in dem verschiedene Ausgaben angezeigt werden können. Z.b. eine Auflistung der kopierten Dateien.

Hatte zuerst vor dies in Python zu schreiben weil ich dies ein bisschen besser könnte, aber da spielt mir unsere IT nicht mit.

So jetzt zu meiner Frage:

Ich hätte das mit einer TextBox gelöst, aber ich schaffe es nicht immer wieder eine Zeile an die vorherige Ausgabe anzuhängen. Hab da schon etwas im Internet gestöbert aber bin noch nicht fündig geworden.

So würde meine GUI in etwa aussehen:

Ich möchte also da wo Erste Zeile steht immer wieder eine neue dran Hängen.

Hätte es z.b. so probiert:

function yes-button {
    $TextBox_Output.AppendText = "test"
}

Die TextBox soll nur zur Ausgabe verwendet werden und nicht zur Eingabe.

Ist TextBox überhaupt das richtige?

Und wenn ja wie kann ich dann eine Zeile hinzufügen?

Würde mich sehr freuen mir da jemand helfen könnte.

Mit vielen freundlich Grüßen an alle klügeren (wie mich) da draußen.

Gruß Thomas

Bild zu Frage
Computer, Windows, programmieren, Informatik, Windows Forms, PowerShell, Visual Studio Code
LiveCharts dynamische Achsen Bezeichnung?

Ich versuche mit LiveCharts ein Graph in Windows Forms zu erstellen, so weit geht erstmal alles. Allerdings würde ich gerne die Bezeichnungen der X Achse per Knopfdruck ändern können.

Die Daten für den Graph kommen aus einer .txt Datei und diese ist nicht immer gleich lang. Ich lese eine Zeit YYYY-MM-DD HH:MM:SS,0000 und einen Wert als String aus. Und jetzt würde ich gerne in meiner CartesianChart von LiveCharts die Eigenschaften von "Labels" ändern, die angibt, welche Werte auf der X Achse stehen. Ich habe bereits ein Array "zeit" in dem alle Zeiten stehen, die ich brauche.

die Achsen des Graphs wird folgendermaßen erzeugt:

chart1.AxisX.Add(new Axis
{
  Separator = new Separator
  {
    Step = 1
  },
  Title = "Numbers",

Hier werden jetzt die Werte der X Achse fest gelegt

Ich habe gerade 1-10 definiert weil ich ein test gemacht hatte wie oft welche Zahl durch die Random Funktion bei 100.000 Durchläufen erzeugt wird

Ich hätte halt die Zeiten aus der Datei gerne drin stehen

  Labels = new[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }

Quasi Labels = new[] {"2022-03-26 22:31:25,0000", "2022-03-26 22:31:30,0000", ...}

da ich diese aber auslesen muss weiß ich nicht wie ich die hier einfüge.

});

chart1.AxisY.Add(new Axis
{
  Title = "Count",
  Separator = new Separator
  {
    Step = 100
  }
});

das Array "zeit" ist einfach nur ein String[] Array, Eindimensional, und enthält alle Zeiten, die ich brauche.

so sieht dann der Graph aus. Links halt die Werte die ich haben möchte und unten halt das, was ich bei "Labels" definiert habe.

Ich benutze Visual Studio 2019, Windows Forms und .Net Core 3.1

Ich Hoffe mir kann jemand weiter helfen.

Bild zu Frage
Computer, Technik, C Sharp, Technologie, Windows Forms, Visual Studio 2019
Wie kann man im Qt Designer den Code einfach zu Python umwandeln?

Hallo.

Also ich brauche Hilfe. Ich würde gern Windows Forms über Python statt mit C# programmieren, weil Python kann bis unendlich viel rechnen als C# und daraus möchte ich einen super Taschenrechner programmieren.

Ich verwende den Qt Designer und versuche denn Code umzuwandeln. Ich habe im Internet geschaut und diesen Code eingegeben:

from PyQt5 import uic, QtWidgets
import sys
 
class Ui(QtWidgets.QDialog):
    def __init__(self):
        super(Ui, self).__init__()
        uic.loadUi('Test.ui', self)
        self.show()
 
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Ui()
    sys.exit(app.exec_())

Ja und wenn ich das dann ausführe, spuckt er diese Fehlermeldung aus:

Traceback (most recent call last):
  File "C:/Users/PrinzPersia/Documents/Test.py", line 12, in <module>
    window = Ui()
  File "C:/Users/PrinzPersia/Documents/Test.py", line 7, in __init__
    uic.loadUi('Test.ui', self)
  File "C:\Users\PrinzPersia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\PyQt5\uic__init__.py", line 226, in loadUi
    return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)
  File "C:\Users\PrinzPersia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\PyQt5\uic\Loader\loader.py", line 72, in loadUi
    return self.parse(filename, resource_suffix, basedir)
  File "C:\Users\PrinzPersia\AppData\Local\Programs\Python\Python35-32\lib\site-packages\PyQt5\uic\uiparser.py", line 992, in parse
    document = parse(filename)
  File "C:\Users\PrinzPersia\AppData\Local\Programs\Python\Python35-32\lib\xml\etree\ElementTree.py", line 1183, in parse
    tree.parse(source, parser)
  File "C:\Users\PrinzPersia\AppData\Local\Programs\Python\Python35-32\lib\xml\etree\ElementTree.py", line 583, in parse
    source = open(source, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'Test.ui'

Wisst ihr, woran es liegt? Ich kenne mich im Qt Designer gar nicht gut aus und Videotutorials anschauen ist wegen der niedrigen Bildschirmauflösung sehr anstrengend.

PC, Computer, programmieren, Code, Python, Windows Forms, XML, Forms
C# Programm anhalten, nicht beenden in WinForms?

Hey, habe einen Lotto Simulator, der mir ausrechnet wie viele Versuche es braucht um 6 richtige aus 49 zu haben.

Jetzt dauert das ganze ja manchmal eeeewig :D habe einen Beenden Button hingemacht mit dem ich das Programm eben anhalte möchte und es mir dann alles ausgibt, was er bis dahin errechnet hat.

Ich finde aber nur Befehle wie this.Close(); wo das gesamte Programm schließt? Das will ich ja nicht.

Gibt es hier irgendeinen Befehl/Methode dazu? Oder habt ihr Ideen? Hier mal ein Teil von meinem Code:

 while (!(numbers.Contains(value1) && numbers.Contains(value2) && numbers.Contains(value3) && numbers.Contains(value4) &&

        numbers.Contains(value5) && numbers.Contains(value6)))

      {

        number1 = rnd.Next(minValue, maxValue);

        number2 = rnd.Next(minValue, maxValue);

        number3 = rnd.Next(minValue, maxValue);

        number4 = rnd.Next(minValue, maxValue);

        number5 = rnd.Next(minValue, maxValue);

        number6 = rnd.Next(minValue, maxValue);

        numbers[0] = number1;

        numbers[1] = number2;

        numbers[2] = number3;

        numbers[3] = number4;

        numbers[4] = number5;

        numbers[5] = number6;

        counter++;

        txtResult.Text = counter.ToString();

        txtMoney.Text = (money * counter).ToString();

        Application.DoEvents();

      }

      txtResult.Text = counter.ToString();

      txtMoney.Text = (counter * money).ToString();

      txtWait.Text = "Fertig!";

Ist nur ein kleiner Teil der eben die Berechnung und Erstellung neuer Zufallszahlen generiert.

LG

Computer, Schule, IT, programmieren, Informatik, Windows Forms, sprache c
DialogResult wird nicht erkannt?

Keine Ahnung was da los ist. Quasi den selben code benutze ich in einem anderen Projekt auch und da funktioniert es einwandfrei. Mit einem openFileDialog oder einer MessageBox funktioniert es auch.

Die 2te Form wird über einen button aufgerufen:

private void RenameButton_Click(object sender, EventArgs e)
        {
            using (RenameForm renameForm = new RenameForm())
            {
                if (renameForm.ShowDialog() == DialogResult.OK)
                {
                    //...
                }
                else
                {
                    MessageBox.Show("Test");
                }
            }
        }

Wenn man aber jetzt den button in der 2ten Form drückt wird einem trotzdem die Test MessageBox angezeigt...:

private void btnOK_Click(object sender, EventArgs e)
        {
            NewFileName = textBox1.Text;
            if (string.IsNullOrEmpty(NewFileName))
            {
                MessageBox.Show("Bitte gib einen gültigen Dateinamen ein.", "Ungültiger Dateiname", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }


            this.DialogResult = DialogResult.OK;
        }

Ich freue mich über jede Hilfe die ich kriegen kann.
Ich mach da schon wieder viel zu lange herum.

programmieren, C Sharp, Code, Visual Studio, Windows Forms
Wie kann ich mit einer For-Schleife Punkt vor Strich rechnen?

Hallo,

ich habe mir einen Taschenrechner (mit For-Schleife) erstellt.

Er kann alles, außer Punkt vor Strich. Die Funktion ist etwas schwieriger, da ich kein kein DataTable.Compute benutzen darf, sonst wäre es ja zu einfach.

Es muss durch den String selber erfolgen, also etwas komplizierter.

Hier der Code (kann leider nicht den ganzen Code eingeben, daher hier der = Code, der dafür ja auch am wichtigsten ist; ich füge den Rest einzeln hinzu!):

Dim input As String = tb.Text
Dim numbers() As String = input.Split({"+", "-", "*", "/"}, StringSplitOptions.RemoveEmptyEntries)
Dim operators() As String = Regex.Matches(input, "[-+*/]").OfType(Of Match).Select(Function(m) m.Value).ToArray()

For Each op As String In operators
  If op = "*" Then
    Console.WriteLine("Multiplication operator found!")
  ElseIf op = "/" Then
    Console.WriteLine("Division operator found!")
  ElseIf op = "+" Then
    Console.WriteLine("Addition operator found!")
  ElseIf op = "-" Then
    Console.WriteLine("Subtraction operator found!")
  End If
Next

If numbers.Length < 2 OrElse operators.Length < 1 Then
  Return ' Exit the method if we can't perform the calculation
End If

Dim result As Double = Double.Parse(numbers(0))

For i As Integer = 0 To operators.Length - 1
  Dim op As String = operators(i)
  Dim number As Double = Double.Parse(numbers(i + 1))

  Select Case op
    Case "+"
      result += number
      (das Gleiche mit -*/)
  End Select
Next

tb.Text = result.ToString()
Dim containsInvalidCharacters As Boolean = False

For i As Integer = tb.Text.Length - 1 To 0 Step -1
  If Not IsNumeric(tb.Text.Substring(i, 1)) And Not "+-*/".Contains(tb.Text.Substring(i, 1)) Then
    containsInvalidCharacters = True
    Exit For
  End If
Next

' Beibehaltene For-Schleife
For index As Integer = 1 To 2
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 12

For index As Integer = 3 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 321

For index As Integer = 4 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 4321

For index As Integer = 5 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 54321

For index As Integer = 6 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 654321

For index As Integer = 7 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 7654321

For index As Integer = 8 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 87654321

For index As Integer = 9 To 1 Step -1
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 987654321

For index As Integer = 0 To 0
  Debug.Write(index.ToString & "")
Next

Debug.WriteLine("") 'Output: 0

End Sub

Danke schon einmal!

Visual Basic, Windows Forms
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
Windows Forms Taschenrechner: Komma-Problem?

Hallo ich erstelle derzeit einen Taschenrechner in Windows Forms.

Ich bin eigentlich fertig mit dem Taschenrechner, bin aber leider jetzt am Schluss auf ein Problem gestoßen, was ich nicht gelöst bekomme:

Wenn ich als Aufgabe 12,4 + 3 eingebe, kommt 127 raus. Ich verstehe aber einfach nicht warum. Es hat die ganze Zeit funktioniert und plötzlich nicht mehr. Vielleicht habe ich ja unbewusst etwas geändert.

Hier der Codeabschnitt, der etwas mit dem Komma zu tun hat (ich kann leider nicht den gesamten Code einfügen, da 500 Zeilen -> erweiterter Taschenrechner):

Imports System.Globalization
Imports System.Text.RegularExpressions

Public Class Form1
  Public Property zahl As String = ""
  Public Property calc As String = ""
  Dim input As String = ""

  Private Function GetDezimalTrennzeichen() As String
    Return CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
  End Function

  Private Sub bcomma_Click(sender As Object, e As EventArgs) Handles bcomma.Click
    tb.Text += GetDezimalTrennzeichen()
  End Sub

  Private Sub bsolve_Click(sender As Object, e As EventArgs) Handles bsolve.Click
    ' ...
    Dim input As String = tb.Text
    input = input.Replace(",", ".")
    ' ...
  End Sub

  Private Function EvaluateExpression(expression As String) As Double
    ' ...
    Dim sqrtRegex As New Regex("sqrt\(([^()]+)\)")

    While sqrtRegex.IsMatch(expression)
      input = sqrtRegex.Replace(input, Function(match)
      Dim innerExpression As String = match.Groups(1).Value
      Dim result As Double = EvaluateExpression(innerExpression)

      If result >= 0 Then
        Return Math.Sqrt(result)
      Else
        ' Wenn das Ergebnis negativ ist, wird eine Exception ausgelöst
        Throw New ArithmeticException("Negatives Ergebnis")
      End If
  End Function)
  End While
  ' ...
End Function

Danke schon einmal.

Visual Basic, Taschenrechner, Visual Studio, Windows Forms