Die CSH03 Lektion 5 war hier auch schonmal Thema, vielleicht gibt dir das ja ein paar Anregungen.
Welche UI Technologie von MS würdet denn Ihr im Moment in Verbindung mit Net6 einsetzen, für Desktop Programme?
Um einfach mal einen weiteren Kandidaten in den Raum zu stellen:
Wenn ich jetzt eine neues Desktop-Programm erstellen müsste würde ich mich wahrscheinlich an Blazor on WPF probieren.
Erfahrungen hab ich dazu noch keine, finde es aber einen interessanten Ansatz.
Und die Blazor Erfahrungen kann man dann bei MAUI und Blazor WebAssemblie/Server bestimmt auch gebrauchen.
Ich denke du musst bei der RowDefinition ein Height="" eingeben und gegebenenfalls noch eine ColumnDefinition mit Width="" hinzufügen.
Auto = nimm soviel Platz wie du brauchst => ragt auch über den sichtbaren Bereich hinaus und es wird kein Scrollbalken benötigt
* = nimm soviel Platz wie verfügbar ist => ragt nicht über den sichtbaren Bereich hinaus und es erscheint ein Scrollbalken
Ich kenn mich mit PostgreSQL nicht wirklich aus.
Aber müsste es nicht @p1 anstellen von ?p1 sein.
Und nutze mal
db.cmd1.Parameters.AddWithValue("p1", Value);
Edit:
mal wieder zu langsam...
Wenn du das Tutorial verwendet hast, dann wirst du auch irgendwo die Methode mainGameTimerEvent
oder timer1_Tick
haben.
Das könntest du dann in etwa so anpassen (feintuning noch nötig!)
if (goLeft)
{
if (player.Bounds.Left >= playerSpeed)
player.Left -= playerSpeed;
}
if (goRight)
{
if (player.Bounds.Right + playerSpeed <= Bounds.Width)
player.Left += playerSpeed;
}
Welches Tutorial hast du denn benutzt?
Als erste Treffer finde ich welche von mooict.
Da gibt es auch einen Link zu einem schriftlichen Tutorial. Bspw.
Dort wird die Begrenzung nach Rechts/Links durch die gameEngine begrenzt. In den Handlern für KeyIsUp/KeyIsDown werden tatsächlich nur die Variablen gesetzt.
if (goLeft && Canvas.GetLeft(player1) > 0)
{
Canvas.SetLeft(player1, Canvas.GetLeft(player1) - 10);
}
Und genau das wird die Lösung sein...
In Zeile 21 deines (hier gezeigten) Klassencodes legst du mit
DataTable dt = new();
eine lokale Variable gleichen Namens an, anstatt die Eigenschaft zu initialisieren!
EDIT:
Da haben sich die Antworten überschnitten..
Du Greifst in MnuOpenClick auf xlsxReaderAndConverter.dt zu. Das ist null, weil du der Eigenschaft XlsxReaderAndConverter .dt nie einen Wert zuweist.
Du erstellst eine neue Variable dt auf die du von aussen aber nicht zugreifen kannst.
Vielleicht findest du ja Hilfe hier(Crosspost)
Oder hier
Oder hier
Oder hier
Ja, die Analyse von Th69 erscheint mir auch sinnvoller als meine eigene...
Die Methode kann nicht null zurück geben, da ihr return-type void ist.
Eine konkrete Fehlermeldung wäre also sinnvoll.
Da du selbst von einem Fehler durch null sprichst würde ich mal den Code debuggen um zu sehen wo die Exception auftritt.
Eine dafür prädistinierte Zeile wäre
strData += objCellData.ToString() + "|";
Ich könnte mir vorstellen, dass es möglich ist, dass objCellData null ist.