Computer – die neusten Beiträge

C# Abbrechen-Button?

Hallo, ich habe ein Problem mit meiner Anwendung. Ich habe eine Form die heißt z.B. Form1 und eine Form2. Beim klick auf den Hinzufügen-Button in Form1 öffnet sich Form2 (dort sollen dann Daten in Textboxen eingegeben). Wenn ich dann auf den Speichern-Button klicke werden diese eingegebenen Daten in eine Datenbank gespeichert und in einem Datagridview in Form1 angezeigt. Das Problem hierbei ist, der Abbrechen-Button in Form2 funktioniert nicht (beim klick auf den Abbrechen-Button soll man wieder zurück zu Form1 kommen). Ich habe eine Datenbank Kontext Klasse "PersonDbContext" in der zwei Methoden sind, einmal zum hinzufügen und einmal entfernen einer Person aus dem grid sowie Datenbank.

DbContext:

public class PersonDbContext : DbContext
	{
		public DbSet<Persons> Person { get; set; }
    public void AddPerson(Persons person)
    {
        Person.Add(person);
        SaveChanges();
        MessageBox.Show(@"Person wurde erfolgreich hinzugefügt.");
    }

    public void RemovePerson(Persons person)
    {
        Person.Attach(person);
        Entry(person).State = EntityState.Deleted;
        SaveChanges();

        MessageBox.Show(@"Person wurde erfolgreich gelöscht.");
    }
}

Form1:

private void buttonHinzufügen_Click(object sender, EventArgs e)
		{
			var dlg = new PersonDialog();
			dlg.ShowDialog();
			var person = dlg.Persons;
        _db.AddPerson(person);
        _db.SaveChanges();
    }

PersonDialog ist die 2. Form die sich dann öffnet (Form2).

Wenn ich auf meinen Abbrechen-Button in meiner 2. Form klicke bekomme ich immer den Fehler das der Wert nicht null sein darf.

Also im DbContext in der AddPerson-Methode heißt es dann der Wert darf nicht null sein (bei Person.Add(person);

public void AddPerson(Persons person)
		{
            //Wert darf nicht null sein.
    		Person.Add(person);
        SaveChanges();
        MessageBox.Show(@"Person wurde erfolgreich hinzugefügt.");
    }

Wenn ich aber eben keine Person hinzufügen will (keine Daten in Form2 eingeben will) ist es null. Ich muss sogesehen eine neue Person hinzufügen und die dann per Löschen-Button in Form1 wieder entfernen weil ich sonst ja die Exception kriege. Also wie bringe ich den Abbrechen-Button in Form2 zum laufen (damit es egal ist ob der Wert null ist bzw halt nichts eingegeben wurde)?

Danke euch. :)

Computer, SQL, programmieren, C Sharp, Datenbank, Visual Studio

SteelSeries Apex M800: Fehler bei der Beleuchtung?

Hallo,

ich habe heute meine SteelSeries Apex M800 bekommen und etwas stimmt mit der Beleuchtung nicht:

Wenn die Tastatur eingeschaltet ist, ich die Beleuchtung aber aus mache, leuchten dennoch einige Tasten blau. Wenn ich dann wiederum eine Farbe bzw. einen Effekt einstelle, dann leuchten die selben Tasten andersfarbig, d.h. sie sind nicht ganz stimmig mit den restlichen Tasten.

Zudem leuchten im Numpad Tasten auf, wenn Rollen, Capslock oder Num aktiv sind. Die drei Tasten leuchten nach belieben wenn die Aktiviert sind, aber im Numpad selbst leuchten dann Tasten rot, obwohl sie dies nicht sollen. Es sind dabei immer die gleichen Tasten (Bei Caps leuchtet z.B. die acht, bei Rollen die zwei etc.).

Einige male blieb das Leuchten für ein paar Sekunden weg oder die LEDs flackerten

Ich habe bereits die Treiber de- und neu installiert und die SteelSeries Engine erneut runtergeladen. Auch via Geräte Manager habe ich die Tastatur deinstalliert. Ohne Erfolg. Auch alle Einstellungen habe ich überprüft. Ich denke es handelt sich eher um einen Hardwarefehler.....oder was denkt ihr? Kriechstrom? Fehler bei der Schaltung?

Diese Probleme traten nach ca. einer Stunde im Gebrauch auf. Ich habe die Tastatur Neu bestellt und habe natürlich schon den Händler kontaktiert. Trotzdem ich wollte wissen, ob jemand bereits ähnliche Probleme mit RGB-Tastaturen hatte.

Die Tastatur an sich funktioniert gut, dennoch sind solche Kleinigkeiten bei einer 200€ Tastatur recht ärgerlich. Zudem habe ich angst, dass im laufe der Zeit noch mehr nicht richtig funktioniert.

Ich hoffe mir kann jemand weiter helfen, denn mich interessiert, woran dieser Fehler liegt. Ich werde die Tastatur im zweifel wohl umtauschen lassen.

Danke im voraus :)

Bild zum Beitrag
PC, Computer, Tastatur, Technik, Elektronik, Gaming, Beleuchtung, Eingabegeräte, Gaming Tastatur

Macht eine Game Capture Card Sinn?

EDIT: Ich hab mir jetzt die HD60 Pro geholt und kann mit dem Programm Game Capture HD von elgato mit wundervollen 1080p60FPS aufnehmen. Hat sich also doch was gebracht.

Guten Abend liebe Community. :3

Ich mache nun schon seit geraumer Zeit Youtube Videos und streame auch ab und an mal. (Ausschließlich am PC)
Ich habe einen i5-7600k mit 4x3.8GHz. Eine Geforce GTX 1060 mit 6GB von MSI. Das ASUS ROG Strix Z270H Motherboard und 16GB DDR4 RAM mit 2133MHz wenn ich mich recht entsinne. Die meisten Spiele lassen sich mit hohen bis maximalen Grafikeinstellungen bei 1080p60FPS aufnehmen, allerdings hat mich seit kurzem das Fortnite Fieber gepackt, und Fortnite macht da nicht mit. Egal welche Einstellungen ich bei OBS versuche, ich kriege maximal 720p60FPS zusammen. Und das mit Mittlerer Grafik in Fortnite. Meine Frage wäre jetzt, würde es Sinn machen die Elgato HD60 Pro, oder die AVerMedia Live Gamer HD 2 zu holen? Soweit ich das verstanden habe, könnte ich das Spiel dann zum Beispiel über meine 1060 laufen lassen, und das Streamen/Aufnehmen der Game Capture Card überlassen. Stimmt das so? Dann könnte ich die Spiele auch immer auf höchsten Einstellungen haben und trotzdem mit 1080p60FPS streamen und/oder aufnehmen. Oder habe ich da was falsch verstanden?
Wenn das so richtig ist, zu welcher von den beiden Game Capture Cards würdet ihr mir dann eher raten?

Vielen Dank und LG!

Computer, Games, Technik, Aufnahme, Streaming, Gaming, Recording, Technologie, Game Capture, Game Capture Card, Elgato HD60, Spiele und Gaming

Wie funktioniert eventbasierte Programmierung?

Laut dem, was ich bisher gehört habe, funktionieren Events rein reaktiv, will meinen, dass erst mit dem Eintritt des Events etwas ausgeführt wird und das Programm ansonsten "schläft".

Wie wird das umgesetzt?

Angenommen, ich möchte, dass der Bildschirm rot eingefärbt wird, wenn man die Leertaste drückt, würde man ja üblicher Weise in einer Schleife pollen, ob die Taste gerade gedrückt ist.

Events sollen jetzt ja aber diese Abfrage unnötig machen. Mich würde aber interessieren wie das gemacht wird.

Meine Idee ist, dass ein Event nichts weiter ist, als ein function-call aller Funktionen (oder Aufruf aller Prozesse / Threads) (eventhandler?), deren Adresse beispielsweise in Form eines function-pointers in irgend einer Form von container, zB. einem Vektor, hinterlegt sind, ich nehme mal an, beim Betriebssystem oder zumindest der nächsthöheren Instanz und die wieder, sodass das dann früher oder später beim Betriebssystem hinterlegt ist.
Tritt nun also beim Betriebssystem, der Fall ein, dass die Taste gedrückt wird, führt das Betriebssystem alle hinterlegten Funktionen aus, also "aktiviert" quasi die eventhandler.
Somit würde nicht gepollt werden, das was ausgeführt wird (in dem Fall die Funktion) passiert im Prinzip rein reaktiv auf das Event, welches vom Betriebssystem ausgelöst wird.

Vielleicht ist das ja der tatsächliche Weg, aber wenn nicht, wie funktioniert es wirklich?

Und wenn es tatsächlich so funktioniert, wie macht es dann das Betriebssystem? Bei meiner Methode müsste ja früher oder später gepollt werden. Zwar hätte man den Vorteil, dass für alle Programme die in irgend einer Form auf den Tastendruck reagieren sollen, nur einmal zentral gepollt werden muss und nicht für jedes einzeln, aber es würde ja dennoch dem Eventprinzip widersprechen oder nicht? Schließlich wäre es nicht REIN reaktiv.
Ich glaube, dass es für ein rein reaktives System nötig wäre, bis auf die hardware-ebene zurückzugehen, wo halt irgend ein decoder auf das binäre Signal der entsprechenden Taste anspringt und eine 1 liefert, deren Leitung mit dem Prozessorbefehl oder was auch immer verbunden ist (bzw halt digital "freigeschalten" ist), der dann das Event auslöst (was sich dann aber kaum noch von einer Schleife mit der Überprüfung des Signals unterscheidet, da ja auch das dauerhaft einen Teil des Prozessor beanspruchen / belegen würde)?

Also, wie ist es wirklich? :)

Computer, Technik, Event, programmieren, Technologie

Meistgelesene Beiträge zum Thema Computer