Visual Studio c++ Code Problem

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Da du anscheinend deinen Zeichensatz auf Unicode konfiguriert hast, musst du L"FENSTER" schreiben statt "FENSTER".

Klappt leider immer noch nicht :(

0

... oder du versuchst mal, FindWindowA anstatt FindWindow einzugeben. Bin mir aber nicht sicher, ob es diesen Befehl auch unter C++.NET gibt.

0
@martin7812

Interessant ist vielleicht auch FindWindowEx. Die Schreibweise des Fensternamens kannst du mit Hilfe des Taskmanagers kontrollieren

0

Ohne großartig Werbung machen zu wollen, falls es so rüberkommt tuts mir leid - aber solche komplexen Code-Fragen werden dir die Menschen auf StackOverflow besser beantworten können.

Sql & C# speichert Daten nicht ab was kann ich tun?

Guten Tag,

Ich bin Programmier Anfänger und habe ein Problem seit neuerdings habe ich mich an SQL herangetraut und auch eine Datenbank erstellt. Das Problem ist nur es speichert nicht ab sobald ich das Programm auflasse speichert es die Daten, aber wenn ich das Programm schließe und wieder öffne kann ich die Daten nicht abrufen ergo Sie sind nicht gespeichert worden. Meine Frage kann ich etwas tun damit SQL auch die Daten dauerhaft speichert und in der Datenbank hinterlegt?

Code:

Um die Daten zu speichern verwende ich diesen Code.

private void button2_Click(object sender, EventArgs e) 


this.Validate(); 
this.tableBindingSource.EndEdit(); 
this.tableAdapterManager.UpdateAll(this.versicherung1DataSet); 
tableTableAdapter.Update(versicherung1DataSet.Table); 

}

Um die Daten in ersten Form wieder abzurufen verwende ich diesen.

this.tableTableAdapter.Update(this.versicherung1DataSet.Table);

...zur Frage

C# Methode funktioniert nicht korrekt?

Mein Problem ist das wenn ich meine Methode durch die 2. Form aufrufe nicht funktioniert, klicke ich aber bei der 1. Form auf den Reload Button funktioniert es.

Form 2 Button Code

Form1 mainForm = new Form1();

            mainForm.ReloadLstBx();

            this.Close();

Mein Form 1 Button Code

private void BtnReLoadList_Click(object sender, EventArgs e) => ReloadLstBx();

und nun der Methoden Code

public void ReloadLstBx()
    {
      if (ListBox1.Items.Count > 0)
      {
        ListBox1.Items.Clear();

        foreach (string Item in Liste.Items)           ListBox1.Items.Add(Item);       }       else if (ListBox2.Items.Count > 0)       {         ListBox2.Items.Clear();

        foreach (string Item in Liste.Items)
          ListBox2.Items.Add(Item);
      }
    }

Als ich nun alles Debug habe, sah ich das er in die Methode rein geht aber beide IF Statements als nicht True sieht, obwohl zu dem Zeitpunkt eine von beiden Listen gefüllt ist.

Woran könnte es noch liegen ?

...zur Frage

C# Delegaten/Invoke/Thread/Backgroundworker?

Huhu,

bin aktuell am rumexperimentieren, da ich es am lernen bin. Dieses Test Form hat nur 2 Dinge die es machen soll.

  1. Das Form Load wird mit einem Label gestartet um den Spieler zu begrüßen. Nach 2 bzw 3 Sekunden soll dass label unsichtbar werden mithilfe eines Backgroundworkes und delegaten. Alles startet normal. Nach den besagten paar Sekunden wirft er mir eine exeption. Als Grund nennt er mir immer das label1. Meine Vermutung ist, dass label 1 ja bereits Form1 Thread läuft und daher nicht mehr geändert werden kann über einen Backgroundworker.

Die Exeption lautet : Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement label1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde."

  1. Der zweite Punkt wäre, dass bei einem Button click ein Fenster aufgehen soll und sich nach ein paar Sekunden wieder schließen soll. Das tut es auch. Drücke ich aber nochmal den Button, wirft er mir diese Exeption: System.ObjectDisposedException: "Auf das verworfene Objekt kann nicht zugegriffen werden.Objektname: "Skynet"."

Hier ist der Code:

Für den Kenner ist das bestimmt alles Kraut und Ruben. Kurz: Ein Chaos. Aber aktuell ist es eher Try and Error :)

 public partial class Form1 : Form

  {

    public delegate void invokeDelegate();

    //Backgroundworker wird initialisiert

    public BackgroundWorker arbeiter = new BackgroundWorker();

    public BackgroundWorker arbeiter2 = new BackgroundWorker();

    //Delegaten

    public delegate void deleWorker (BackgroundWorker a);

    public delegate void gruss(BackgroundWorker b);

    //Begrüßungsfenster

    Skynet hello = new Skynet();

    //Zeigt Skynet Fenster an

    public void Show()

    {

       hello.Show();

        Thread.Sleep(3000);

        this.hello.Close();

        hello.Dispose();

    }

    //Willkommensgruß wird für 2 Sekunden angezeigt

    private void Willkommensgruss(Label a)

    {

      a.Text = "Willkommen, Fremder.";

      Thread.Sleep(2000);

        }

    public Form1()

    {

      InitalizeComponent();

      arbeiter.DoWork += backgroundWorker1_DoWork;

      arbeiter2.DoWork += backgroundWorker2_DoWork;

      Skynet hello = new Skynet();

         }

    private void Form1_Load(object sender, EventArgs e)

    {

      //delegate

      gruss hallo = new gruss(backgroundWorker2.RunWorkerAsync);

        hallo.Invoke(backgroundWorker2);

    }

    //Öffnet Skynet Fenster

    private void button2_Click(object sender, EventArgs e)

    {

      deleWorker test = new deleWorker(backgroundWorker1.RunWorkerAsync);

      test.Invoke(backgroundWorker1);

    }

    //Backgroundworker 1

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

    {

     Show();    

    }

    //Backgroundworker 2

    private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)

    {

    Willkommensgruss(label1);

    }

  }

}

...zur Frage

Problem mit altem Sony Vaio Laptop?

Hallo,

Ich habe ein Problem mit meinem Sony Vaio Laptop (Model SVE151G13M). Plötzlich lässt er sich nicht mehr richtig einschalten. Sobald ich ihn anschalte flackert für ein paar Sekunden Folgende Fehlermeldung:

Your PC needs to restart.

Please hold down the power button.

Error Code: 0x000000C4

Parameters:

0x0000000000000091

0x000000000000000F

0xFFFFF8034BB58A00

0x0000000000000000

Aber egal ob ich nun den Laptop neustarte oder einfach nichts mache es erscheint dasselbe Fenster mit der Überschrift: „Automatische Reperatur“ und einigen Optionsmöglichkeiten zur Fehlerbehebung. Aber egal welche Option ich wähle, es ändert sich nichts. Ich bin auch schon ins bios gegangen aber auch da kam ich leider nicht weiter (ich möchte den laptop am liebsten nicht zurücksetzen, da wichtige Dateien dadrauf sind).

Wenn es so erklärt werden kann dass es auch ein laie verstehen kann wäre ich sehr dankbar, da ich mich damit nicht so gut auskenne.

Vielen Dank im vorraus.

...zur Frage

C# Objekte verändern ohne sie neu zu erzeugen?

Hallo, ich will ein Objekt verändern, ohne es mit = new neu zu erzeugen. Der Grund dafür ist, ich habe Personen in einer Datenbank und diese haben feste IDs und wenn ich doch die Person (das Objekt) neu erzeuge ist die ID futsch.

Code:

public void BindPerson(Person selectedPerson)
{
	this.textBoxVorname.Text = selectedPerson.Vorname;
	this.textBoxName.Text = selectedPerson.Name;
	this.textBoxStrasse.Text = selectedPerson.Straße;
	this.textBoxHausnummer.Text = selectedPerson.Hausnummer.ToString();
	this.textBoxWohnort.Text = selectedPerson.Wohnort;
	this.textBoxPLZ.Text = selectedPerson.PLZ.ToString();
    _selectedPerson = selectedPerson;
}

private void buttonOK_Click(object sender, EventArgs e)
{
	var vorname = textBoxVorname.Text;
    var name = textBoxName.Text;
    var straße = textBoxStrasse.Text;
    int hausnummer = Convert.ToInt32(textBoxHausnummer.Text);
    var wohnort = textBoxWohnort.Text;
    int plz = Convert.ToInt32(textBoxPLZ.Text);

	_selectedPerson = new Person()
	{
	    Vorname = vorname,
	    Name = name,
	    Straße = straße,
	    Hausnummer = hausnummer,
	    Wohnort = wohnort,
	    PLZ = plz
	};
    Close();
}



Ich will das es keine new Person ist, ich habe ja die selectedPerson in der Variable _selectedPerson gespeichert und diese möchte ich jetzt im buttonOK_Click verwenden, möchte aber nicht

_selectedPerson = new Person()

machen weil sonst die ID der selectedPerson weg ist weil es eben eine neue Person ist. Versteht ihr was ich meine? :D

...zur Frage

Taschenrechner in Windows Forms (C#): Wie kann ich das Komma gescheit einbauen?

Im Moment programmiere ich einen Taschenrechner, der fast genauso sein soll wie der Standardrechner von Windows. Bis jetzt lief es ganz gut, nur kriege ich es einfach nicht hin, dass man eine eigene Dezimalzahl eingeben kann.

Bei mir sieht es gerade so aus:

private double Zahl;

private char Operator;

private double Operator2;

private double Zahl2;

double result;

private bool button2WasClicked = false;

private bool button20WasClicked = false;

So sieht der Code in der Zahl aus:

private void button15_Click(object sender, EventArgs e)
{
   if (button2WasClicked == false)
   {
      Zahl = Zahl * 10 + 8;
      Anzeige();
   }

   if (button2WasClicked == true)
   {
      Zahl = Zahl /10 + 0.8;
      Anzeige();
      button2WasClicked = false;
   }

//-------------------------------------

private void button2_Click_1(object sender, EventArgs e)
{
   button2WasClicked = true;
}

Das ist der "," Knopf.

Also: Wie man sieht, klappt es ganz gut, eine Dezimalstelle einzugeben. Bei einer Zahl unter 10 aber habe ich einfach keinen Plan, wie ich es mit +10 anstellen sollte.

Bitte helft mir.

...zur Frage

Was möchtest Du wissen?