Laden...
H
holliesoft
myCSharp.de - Member
0
Themen
18
Beiträge
Letzte Aktivität
vor einem Jahr
Dabei seit
04.04.2010
Alter
48
Beruf
Software-Qualitätsmanagement
Herkunft
Bad Kreuznach
Website
Erstellt vor 3 Jahren

Eventuell sieht das mittlerweile auch anders aus.
Wäre cool, wenn man die Runtime als normales Package (noch mehr Dateien) mit liefert kann bzw. die Option dazu hat.

Ich habe diese Woche erfolgreich ein älteres Projekt von mir vom alten Webbrowser-Control auf WebView2 migriert und habe daher recht "frische" Erfahrungen damit.

WebView2 ist ab Windows 11 im Betriebssystem vorhanden. Unter Windows 10 kann die Runtime nachinstalliert werden (sogar ohne Adminrechte). Die Runtime wird regelmäßig automatisch aktualisiert.

Es ist aber auch möglich, eine fixe Runtimeversion mit auszuliefern, z.B. in einem Unterverzeichnis Deiner Anwendung. Da müsstest Du Dich selbst dann um die Aktualisierung kümmern.

Weitere Infos gibt es bei Microsoft

Erstellt vor 5 Jahren

Hallo,

es gibt auch immer noch VS 2017 Express für Desktop. Auf der Seite nach unten scrollen zur Überschrift "Möchten Sie immer noch Visual Studio Express?". Die Express ist zwar nicht ganz so komfortabel wie die Community aber vielleicht reicht sie aus. Dafür darf sie meines Wissens auch in größeren Firmen eingesetzt werden.

Viele Grüße
Patrick

Erstellt vor 7 Jahren

Vielleicht hilft das?

public static class TimeSpanTools
{
	public static TimeSpan ExactDuration(TimeSpan from, TimeSpan to)
	{
		var diff = to.Subtract(from);
		if (diff.TotalMilliseconds < 0)
		{
			return new TimeSpan(1,0,0,0).Subtract(diff.Duration());
		}
		return diff;
	}
}
Erstellt vor 8 Jahren

Hallo,

wie BhaaL schon geschrieben hast, musst Du das Ergebnis von row.Replace() der Variablen row wieder zuweisen.

Anders sieht es beim StringBuilder aus, dort kann man mit Replace() direkt den Inhalt vom StringBuilder manipulieren.

Die if-Abfrage kannst Du Dir übrigens sparen. Wenn es nichts zu ersetzen gibt dann passiert auch nichts.

Gruß
Patrick

Erstellt vor 8 Jahren

Hi,

dass Goto böse ist ist ja bereits geklärt 😉

Zu Deinen Exception-Behandlungen: lieber vorab prüfen, ob das Verzeichnis (cfgpfad) existiert und ggf. erstellen:

if (!Directory.Exists(cfgpfad))
{
   Directory.Create(cfgpfad);
}

Dasselbe in grün gilt für die FileNotFoundException.

Statt dem stillen Behandeln der InvalidOperationException würde ich den User auf jeden Fall über den Fehler informieren und die nicht ladbare XML umbenennen, bevor sie gelöscht und neu erstellt wird.

Für die Zugriffsverweigerung würde ich ebenfalls eine sinnvolle Meldung an den User ausgeben, die auch den Inhalt von Exception.Message enthält.

Pfade sollte man übrigens mit Path.Combine() verknüpfen, da man sich dabei um evtl. fehlende Backslashes nicht kümmern muss.

Gruß
Patrick

Erstellt vor 9 Jahren

Warum kompliziert:

 private bool isIn( char ch ) {
			switch ( ch ) {
				case 'ö':
					return true;
				case 'Ö':
					return true;
				case 'ü':
					return true;
				case 'Ü':
					return true;
				case 'ä':
					return true;
				case 'Ä':
					return true;
				case 'ß':
					return true;
				case '§':
					return true;
				case '²':
					return true;
				case '³':
					return true;
				case 'µ':
					return true;
				default:
					break;
			}
			return false;
		}

wenns auch einfach gehen würde:

private bool isForbidden( char ch )
        {
            string forbiddenChars = "öÖüÜäÄߧ²³µ"; //oder besser noch als Konstante auf Klassenebene
            return forbiddenChars.Contains(ch);
        }
Erstellt vor 10 Jahren

Eben in einem MSDN Forum gefunden:

private void button2_Click(object sender, EventArgs e)
        {
            timer1.Interval = Convert.ToInt32(1000);
        }

Erstellt vor 11 Jahren

Hallo,

was Du suchst, ist die Methode


string.Contains();

also für Deine Combobox:


if (CbBezeichnung.Text.Contains("Boat")

Gruß,
Patrick

Erstellt vor 12 Jahren

Hallo,

da fehlt ein Sleep in der for-Schleife. Zudem wird die Variable i im Kopf der for-Schleife initialisiert, eine Initialisierung außerhalb der Methode ist daher unnötig.


        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "hallo welt";
            Thread.Sleep(1000);
            label1.Text = "";
            for (i = 3; i <= 7; i++)    
            {
                label1.Text += i + "\n";
                Thread.Sleep(1000);
             }
        }

Gruß
Patrick

Erstellt vor 13 Jahren

Hallo,

das beste Buch, das ich zu C# gekauft habe, ist Visual C# 2010 - Grundlagen und Profiwissen von Walter Doberenz und Thomas Gewinnus. Das Buch behandelt so ziemlich alles, und ist gut verständlich geschrieben.

Gruß
Patrick