Laden...

Forenbeiträge von DeveloperX Ingesamt 462 Beiträge

07.03.2006 - 20:32 Uhr

Hallo herbivore!

Impliziert die const-Deklaration, dass die Konstante statisch ist oder muss man zuerst ein Object von A erstellen um auf B zugreifen zu können (kann es leider gerade nicht selbst testen). Ich habs bisher immer mit

public static readonly string B = "huhu"

gemacht.

Aber welche Version ist bevorzugen?

mfg DeveloperX

27.02.2006 - 15:12 Uhr

Hallo!

TextBox.UseSystemPasswordChar = true

Unter .NET 2.0 jedenfalls. Für 1.1 gibt es das (glaub ich zumindest nicht), dafür gibt es bei CodeProject was:
http://www.codeproject.com/cs/miscctrl/passwordbox.asp

mfg

26.02.2006 - 01:11 Uhr

Hallo!

Bleibt deine GUI denn bedienbar? Wenn nicht, würd ich mal tippen, dass der Code nach dem submit gar nicht mehr aufgerufen wird, bzw. bis die entsprechende Seite geladen wurde. dann folgt ein DocumentCompleted und das Programm versucht wieder sich einzuloggen, weil ja die state-Variable noch immer auf 0 ist --> Rekursion?

mfg

25.02.2006 - 16:18 Uhr

Hallo!

Bisher habe ich den OleDb-Treiber nur für Access-Datenbanken verwendet, und den SqlClient-Treiber nur für Sql-Server-Datenbanken. Wenn ich im VS 2005 eine Verbindung zu einer DB mittels Designer erstelle (mach ich aber kaum, weil ich die Datenzugriffte selber schreibe), dann nimmt er automatischen den SqlClient-Treiber.

mfg

25.02.2006 - 16:01 Uhr

Hallo!

Hast du es schonmal mit System.Data.SqlClient.SqlConnection versucht? Vl. verträgt sich der OleDB-Treiber nicht mit SQL Server Express ...

mfg

23.02.2006 - 20:28 Uhr

Hallo!

Hast du schonmal versucht, deine RichTextBox direkt zu instaniziieren? Oder deine RichTextBox mittels Designer in eine Form zu ziehen und nicht die normale (ev. überschreibt der Designer deine Änderungen der Definitionen wieder..)?

mfg

23.02.2006 - 12:23 Uhr

ich bin auch dort, aber nur am 13. und 14.!

23.02.2006 - 00:47 Uhr

Hallo!

Der Thread ist zwar nicht mehr ganz akuell aber vielleicht interesiert es ja noch jemanden ..

Bin grad in der MSDN auf folgenden Artikel gestossen: http://www.microsoft.com/germany/msdn/library/visualtools/vb6/BerechnungBeweglicherFeiertageUnterVisualBasic.mspx

mfg

21.02.2006 - 16:35 Uhr

Hallo!

Probiers mal mit DBNull.Value!

mfg

21.02.2006 - 14:52 Uhr

Hm ... da hast du natürlich recht herbivore, hab ich ganz übersehen.

Man könnte ja noch das letzte Trennzeichen bestimmen und daraus die geeignete Culture wählen (es sei denn, Tausenderpunkte werden auch hinter dem Komma verwendet, was ich jedeoch noch nie gesehen oder gemacht habe ...) oder Replace verwenden. Das ganze natürlich nur wenn beide Zeichen vorkommen.

Wobei ich herbivore nochmals rechte geben muss. Denn was hat denn die Eingabe '1.234' nun für eine Bedeutung? "eins komma zwei drei vier" oder "eintausendzweihundertvierunddreissig"?

Eventuell würde es auch helfen, sich auf ein Format zu beschränken und das Format neben der TextBox hinschreiben?

mfg

21.02.2006 - 14:44 Uhr

Hallo!

folgendes müsste funktionieren:

  1. ersetze die Punkte durch "_"
  2. ersetze beistriche durch punkte
  3. ersetze "_" durch beistriche --> Einheitliches Format, egal wie der string eingegeben wurde.
  4. mit einer Culture parsen, in der das Format "1.234,56' gültig ist -> 'DE'

mfg

20.02.2006 - 13:28 Uhr

Hallo Eisbär!
Dank für die Empfehlung! Ich habe gestern noch versucht, das AxCMS zum laufen zu bekommen, habs aber nicht hinbekommen. Beim Versuch einen SQL-Server-Account zu erstellen, hab ich laufend Fehlermeldungen bekommen. Vermutlich ne Fehlinstallation vom SQL Server.

Hallo cdr!

Vielen Dank! Das ist haargenau das, was ich gesucht habe!

mfg

19.02.2006 - 16:20 Uhr

Ja das dachte ich auch zuerst, aber ich würd es halt als bequem empfinden, wenn man selber solche MSDN-Artikel erstellen kann. Zum einen ist es sehr an .NET angepasst, vom Aufbau her perfekt und sonst eigentlich auch sehr geeignet.

Naja, ich werd noch ne Weile nach einem MSDN-Editor suchen, wenn ich nichts finde werd ich ein CMS verwenden. Kann einer von euch ein spezielles empfehlen?

mfg

19.02.2006 - 14:35 Uhr

NDoc kenn ich schon. Mit dem kann man ja nur Klassen, Methoden, Properties etc. beschreiben, aber ich will ja auch andere Artikel schreiben (mit Tabellen, Textformatierungen, Aufzählungen, Bilder ...) und in der MSDN-Library anzeigen lassen.

mfg

19.02.2006 - 14:10 Uhr

Hallo zusammen!

Ich suche gerade ein Tool um mein Projekt (nicht nur den Code) etwas zu dokumentieren. Momentan schreibe das ganze einfach in Word, ist aber mit der Zeit zu unübersichtlich.

Nachdem ich grad in der MSDN was gesucht habe, ist mir aufgefallen, dass das haargenau das ist was ich bräuchte. Klassen, Enums etc beschreiben aber auch How-To´s und sonstige Informationen und Artikel.

Leider gibt es in der MSDN-Library keinen Menüpunkt oder ähnliches mit dem man neue Seiten hinzufügen kann. Gibt es für die MSDN-Library einen Editor der extra zum Downloaden ist?

_Edit: Ich meine übrigens die lokale MSDN-Library 2005 for Visual Studio, nicht die Online-Version. _

mfg
DeveloperX

18.02.2006 - 23:21 Uhr

Hallo!

Ich habe zwar nicht die Express-Version aber es müsste ja gleich sein:

Edit -> Advanced -> View White Spaces

mfg

18.02.2006 - 22:59 Uhr

Hallo!

Mach dir doch UserControls anstatt die ganzen Panels mit Controls zu füllen. Bei einem Button-Click in der Navigaiton einfach die Controls Haupt-Panels entfernen (.Controls.Clear()) und das jeweilige UserControl instanziieren. Noch Dock auf Fill setzen und zum Hauptpanel hinzufügen.
Die etwas performatere Lösung wäre, wie du schon gesagt hast, die UserControls auszublenden anstatt immer neu zu instanziieren!

Ist wesentlich einfacher als die vielen Panels in einem Fenster im Desinger zu erstellen.

mfg

18.02.2006 - 22:48 Uhr

Hallo!

Ich vermute mal, dass ber, anzahlpackets und bytes int-Variablen sind. Daher wird eine Ganzzahl-Division durchgeführt, die Stellen nach dem Komma abgeschnitten werden:

25/100 würde normal 0.25 ergeben. Nachdem du ja vermutlich eine integer-Division hast, wird das .25 abgeschnitten und übrig bleibt 0.

Lösung:

berrate = (double)ber /(double)(anzahlpackets*bytes);

mfg

18.02.2006 - 02:23 Uhr

Hallo Rainbird!

Vielen Dank für die ausführlichen Informationen. Es ging mir lediglich um die Frage, ob ich Folder und Item (sie haben tatsächlich nur die Eigenschaft, dass sie einen Vater-Folder haben können, nicht mehr. Der Rest wird in zusätzlichen Tabellen gespeichert. Ich brauche diese eine bzw. ev. zwei Tabellen lediglich aus dem Grund der Baum-Struktur) aufteilen soll oder nicht.

Der Rest des Postings ist mir bekannt und bereits mit anderen Klassen, die nicht via Baum strukturiert sind, implementiert (ich verwende keine O/R-Mapper und mache fast alles so, wie in deinem Posting beschrieben, nur ohne DataTable als Rückgabe-Wert sondern Structs mit den jeweiligen Datentypen).

Aber wie ist das nun, wenn ich lediglich die Struktur ohne zusätzliche Attribute wie Knoten-Name etc. speichern will? Du hast ja deine Lösung ja damit begründet, dass sie nicht gleich sondern ähnlich sind. Sie sind jedoch gleich (zumindest auf der Abstraktion-Stufe, auf der die Baum-Strukturierung erfolgt).

Im BusinssLayer ist Item eine abstrakte Klasse, und eine Ausprägung davon ist eben Folder. Bei mir erben viele Klassen von Item, weil ich für alle die gleichen Attribute brauche (Zuletzt-geändert, erstellt-am, besitzer, itemid und itemtype der abgibt ob welche ausprägung von item es ist). Mögliche Ausprägungen sind z.B. Folder, Kontakt, Termin ...

Vielen Dank nochmals für deinen Beitrag!!

17.02.2006 - 17:48 Uhr

Original von frisch
... , da das Tool-Tip nur eine begrenzte zeit sichtbar ist.

Wenn man das Tooltip per Code erscheinen lässt(.Show()), bleibt es solange sichtbar, bis man es per Code wieder ausblendet (.Hide())!

mfg

17.02.2006 - 17:11 Uhr

Hallo!

Du könntest auch ein Tool-Tip verwenden (.net 2.0). Da kannst du das Tooltip per Code sichtbar machen (geht soweit ich weiss unter 1.1) nicht. Ausserdem könntest du es als das etwas schönere Balloon-Tip einstellen.

Tooltip sind nicht zu übersehen aber auch nicht zu aufdringlich.

mfg

17.02.2006 - 16:51 Uhr

Hallo zusammen!

Also ich frage mich gerade, ob ich folgendes Problem mit Relationen in der Datenbank oder nur im Programm lösen sollte. Die Situation ist folgende:

Ich habe Items und Folder in einem Baum organisiert. Folder programmtechnisch gesehen von Item abgeleitet und hat nur die Funktion GetChilds() hinzubekommen. Also keine zusätzlichen Daten.
Von den Daten her, unterscheiden sie sich also nicht (Anmerkung: Die Item-spezifischen Daten habe ich aufgrund der Fähigkeit meines Programmes, benutzerdefinierte Felder hinzuzufügen, datenbank-technisch nicht in der selben Tabelle wie Item bzw. Folder).

Jetzt kommt der springende Punkt:
Vater kann ja nur ein Folder sein und kein Item. Wenn ich nun eine Beziehung auf die gleiche Tabelle mache, könnte es ja unter Umständen vorkommen, dass plötzlich ein Item ein Vater wird.

Jetzt sind mir 2 Lösungswege eingefallen:

  1. Eine zusätzliche Tabelle wo nur die Folder-IDs drinnen stehen und auf diese Tabelle wird die Vater-Relation angesetzt.

  2. Die Lösung mit der Relation auf die gleiche Tabelle und darauf hoffen, dass nie der Fall eintritt, dass ein Item ein Vater ist.

Welche Lösung wäre hier zu empfehlen? Und vor allem warum? Oder gibt es andere Ansätz?

Ist zwar jetzt keine so weltbewegende Frage, aber ich möchte, dass bei meinem ersten größteren Programm alles sauber und korrekt gelöst ist!

mfg
DeveloperX

15.02.2006 - 21:32 Uhr

Hallo!

Vielen Dank an euch alle, ich werd mich mal über die genannten Themen schlau machen und auch über die anderen Vorschläge nachdenken!

Bei Bedarf werde ich mitteilen, was dann letztendlich dabei rauskommt!

mfg

15.02.2006 - 20:28 Uhr

ich machs bei dem was ich gereade mache so:

Wenn eine (z.B.) Kontakt-Anzeigen-Dialog genau ein Kontakt-Object anzeigt, mach ich im Kontakt-Objekt eine Referenz auf den Dialog und der Dialog kann über Kontakt.Show() aufgerufen werden. Damit kann ich ein doppeltes Öffnen des gleichen Kontaktes einfach verhindern und ggf. in den Vordergrund holen oder updaten wenn sich was geändert hat.

So stell ich mir das halt mal vor, wie es dann mal sein wird. Also BL und Forms, die nur einmal geöffnet werden sollen, teilweise gemischt.

Ansonsten halt ich mich auch daran, dass die Forms die BL kennt, aber nur die BL kennt die Datenschicht. Die Datenschicht kennt aber nicht die BL.

mfg

12.02.2006 - 21:53 Uhr

Wahrscheinlich weil der 2. Screenshots von einer Beta ist und der 1. von der Release Version!?

12.02.2006 - 19:54 Uhr

Hallo zusammen!

Ich bin auf der Suche nach einem Thema für eine Diplomarbeit im Fach 'Angewandte Datentechnik'. Das Thema sollte ca. für ein 60-seitiges Skriptum reichen (also schon einigermaßen viel) und muss nichts mit .NET oder C# zu tun haben. Es können auch sehr spezifische Sachen sein und MUSS natürlich mit Datenbanken zu tun haben. Da die Suche per Google o.ä. natürlich nicht klappt wenn man keine Schlagwörter hat bitte ich euch um einige Vorschläge!

Was mir bis jetzt als einzige Themen eingefallen sind, sind 'O/R-Mapper - Funktionsweise, Verwendung und Vergleich von Produkten' und 'Oracle Suite 10g' (wird bei uns in der Schule sehr häufig eingesetzt).

Alternativ könnte ich die Diplomarbeit auch im Fach Programmieren schreiben. Auch hier würde ich um einige Schlagworte bitte, sollte jedoch mit .NET zu tun haben und ebenfalls Stoff für ein ca. 60-seitiges Skriptum haben.

Ich bin für weitere Themen und Ideen sehr dankbar!

mfg DeveloperX

12.02.2006 - 18:34 Uhr

Hallo!

Also mein VS schaut genauso aus wie das auf deinem Screenshot!

mfg

12.02.2006 - 18:31 Uhr

du hast ja anscheindend typisierte DataSets. Da werden ja, soweit ich mich errinnere, Methoden ala 'Is<spalte>Null' und 'Set<spalte>Null' produziert. Mit denen kannst du dann arbeiteten!

mfg DeveloperX

04.02.2006 - 20:21 Uhr

vielleicht bekommt der datareader gar keine zeilen also ergebnis. gib doch mal 'strX' in der Console aus oder setzt den Debugger mal drauf an.

mfg

04.02.2006 - 09:23 Uhr

Zu den Schichten ist es wahrscheinlich am besten, wenn du mal hier im Forum suchst oder mal googlest.

Ich bin mir nicht sicher ob das den Fehler verursacht, aber das Sub-Select gehöt in runde Klammer und nicht in geschweifte!

mfg

04.02.2006 - 01:10 Uhr
  1. Das gesamte SQL-Statement muss unter Anführungszeichen gesetzt werden.

  2. Was ist das Object db? und was macht die Methode GetKunden()?

  3. Kommen irgendwelche Fehlermeldungen? Wenn ja, welche? (möglichst genau beschreiben)

  4. Du solltest mit Schichten arbeiten (also UI, BusinessLayer und DataLayer). So wie du es jetzt hast (also zugriffe auf die Datenbank in den Eventhandlern vom GUI usw.) wird es sehr schnell unübersichtlich und fehleranfällig.

mfg

04.02.2006 - 00:54 Uhr

Ja das sollte schon in den Code rein!

Wie hast du denn das ausprobiert im Code? Mit OleDbCommand?

mfg

04.02.2006 - 00:18 Uhr

Hallo!

Das geht insofern nicht, das KeyDown was Forms-spezifisches ist. Du kannst also nur bei einem Read() o.ä. Eingaben einlesen!

mfg

04.02.2006 - 00:13 Uhr

Hallo!

folgendes SQL-Statement müsste genau das machen was du willst:

select * from kunde
where kundennr in
    (select kundennr from rechnung
     where rechnung.datum between datum1 and datum2
    )

mfg

01.02.2006 - 17:15 Uhr

Hallo!

Falls du, so wie ich vor einiger Zeit, Daten aus der eigenen DB mit Outlook synchronisieren willst, gibt es einen einfachen Trick: Zu jedem Termin (bei mir warens Kontakte) ein zusätzliches Zahlen-Feld einfügen (geht per Code) und dort die Id aus deiner DB reinschreiben. Dann brauchst du nachher nurmehr alle Outlook-Termine durchlaufen, nachschauen ob diese Feld beim Termin existiert und wenn ja: Daten ändern; wenn nein: dann ist es ein 'fremder' Termin und den sollte man in Ruhe lassen. Also deinen neu anlegen.

Ich hoffe mal das mit den benutzerdefinierten Felder geht auch mit Terminen und nicht nur mit Kontakten.

mfg

21.01.2006 - 10:57 Uhr

Danke herbivore, das war genau was ich gemeint habe!

Ich möchte mich ja nicht in alle Bereiche einarbeiten, aber ich brauche halt mal nen Überblick was es gibt und die Sachen die mir interesant oder wichtig erscheinen werd ich dann auch machen.

In Vorgehensmodelle und Projektorganisation/-management habe ich, der Schule sei Dank, auch schon einen relativ guten Einblick in die Theorie und Praxis (2mal Projektleiter von Schulprojekten) bekommen. Auch Multiprocessing usw. habe wir in der Schule schon gut gemacht, jedoch nur die Theorie. Aber da du schreibst, es wäre ein wichtiges Thema (hätte ich eigentlich nicht gedacht, aber so wie du das erklärst klingt es plausibel), werde ich das mal in die Praxis umsetzen!

IPC hab ich im Fach Linux-Systemprogrammierung schon des öfteren gemacht, also die Grundlagen hab ich schon. Mir fehlt halt noch die .NET Umsetzung dafür.

Vielen Dank nochmal an Herbivore und ich hoffe es kommen noch einige solcher guten Beiträge!

mfg

20.01.2006 - 22:34 Uhr

Hallo zusammen!

ich habe demnäcst etwas mehr Zeit und möchte die Zeit nutzen mich in andere Technologien / Bereiche in .Net einzuarbeiten. Aber ich weiss halt nicht was es alles gibt und dementsprechend weiss ich auch nicht, nach was ich Suchen soll!

Bis jetzt habe ich an folgende Sachen gedacht:
*Avalon *Remoting *Web-Services *Generics *ein paar Details von ADO (z.B. MARS)

Nun wäre es toll, wenn ich von euch weiter Ideen/Schlagworte bekommen könnte und wenn ihr kurz in 1-2 Sätzen beschreiben könntet, was man damit im Groben machen kann bzw. was es für Vorteile bringt!

Es können auch ruhig nur Teilgebiete eines Themas sein (wie z.b. MARS für ADO) und auch welche, die erst zukünftig erscheinen (z.B. Avalon)!

Vielen Dank schonmal für die (hoffentlich) zahlreichen Beiträge 😉 !

BTW: .net 2.0 + VS 2005

mfg DeveloperX

20.01.2006 - 22:23 Uhr

Hallo Nightline!

DMZ = "zwischennetz" zwischen internet und firmen-netzwerk, damit man das interne netz durch firewalls usw. vor zugriffen von aussen schützen kann. Dienste die man nach aussen bereitstellen will, sollten/müssen sich im DMZ befinden.

Es wäre gut wenn du die Standorte von Web- und SQL-Server bekanntgeben könntest.

Sind beide am selben Rechner (sprich dein privater PC)?
Oder ist die DB auf deinem Pc und der Web-Server auf einem anderen?

mfg

14.01.2006 - 02:14 Uhr

Hallo!

vielleicht liegts an den eckigen Klammern um den Parameter ... ich kenn das nur ohne!

mfg

10.01.2006 - 13:11 Uhr

Was ich an den Blogs (v.a. am eisbären-Blog) gut finde, dass dort des öfteren Themen angesprochen werden, die ich noch nicht kannte und mit denen ich mich dann auch beschäftige. Und dann natürlich auch was Neues lerne.

mfg

09.01.2006 - 18:26 Uhr

FsCop ist auch als Standalone-Anwendung verfügbar:
http://www.gotdotnet.com/team/fxcop/

mfg

08.01.2006 - 16:01 Uhr

Also ich lese nur 2 Blogs wirklich regelmäßig und das sind diese:
http://www.des-eisbaeren-blog.de/
http://www.tom-mue.de/MyBlog/

Gelegentlich schaue ich mir noch den VS Editor´s Blog an (dort wird aber wenig gepostet): http://blogs.msdn.com/vseditor/

mfg

05.01.2006 - 20:20 Uhr

du kannst ja innerhalb der sortier-methode auf ein int-array casten:

object[] werte = new object[10];
...
int[] intwerte = (int[])werte;

mfg

05.01.2006 - 20:08 Uhr

Hallo!

Mach doch ein object-array. Dann kannst du nachher abfragen, ob int-Werte oder strings darinstehen:

if (array[0] is int)
 { // integer }
 else if (array[0] is string)
 { ...}

mfg

05.01.2006 - 13:53 Uhr

Vielen Dank an euch Beide!

Ich werd mir mal zu den von euch genannten Themen Informationen suchen!

mfg

04.01.2006 - 23:55 Uhr

Hallo!

FileInfo.Refresh() müsste abhilfe schaffen.

mfg

04.01.2006 - 23:13 Uhr

Hallo zusammen!

Steh grad vor nem konzeptionellen Problem. Folgende Situation (umgeschrieben für besseres Verständis):

Angenommen ich habe im meinem Programm verschiedene Fahrzeug-Klassen (PKW, LKW) die allesamt von 'Fahrzeug' (Klasse ist abstrakt, kann also alleine nicht existieren) abgeleitet sind.
Fahrzeuge hat bestimmte Eigenschaften, PKW und LKW haben zusätzlich zu den geerbten Eigenschaften auch noch jeweils andere Eigenschaften (unterschiedliche natürlich).

Nun möchte ich die Fahrzeuge in eine Datenbank speichern. Mir sind 2 Möglichkeiten eingefallen wie die DB-Struktur aussehen könnte:

Möglichkeit A:
Grundinformationen von Fahrzeug in eine eigene Tabelle schreiben:
FAHRZEUG: FahrzeugID, AnzahlRäder
PKW: PKWID, FahrzeugID (FK), AnzahlTüren, Kofferraumvolumen
LKW: LKWID, FahrzeugID (FK), MaxLadegewicht

Beim Abspeichern speichert die Fahrzeug-Klasse die Grunddaten und die abgeleiteten Klassen nur die zusätzlichen Eigenschaften.

Vorteil:
Ich brauche nicht vor jede abgeleitete Klasse die Grunddaten speichern, sondern kann mich darauf konzentrieren die neuen Eigenschaften zu speichern.

Nachteil:
Informationen sind zerstreut und, falls ich mich richtig errinnere, die Tabellenstruktur ist nicht normalisiert.

Möglichkeit B:
Die Grundunformationen in die einzelnen Tabellen übernehmen:
PKW: PKWID, FahrzeugID (FK), AnzahlTüren, Kofferraumvolumen, AnzahlRäder
LKW: LKWID, FahrzeugID (FK), MaxLadegewicht, AnzahlRäder

Vorteil:
Informationen sind nicht zerstreut. Insert/Update/Select usw. performater.

Nachteil:
Bei einer Suche nach z.B. Frahzeugen mit x Rädern muss ich alle Tabellen durchsuchen und ich muss mich bei jeden Sub-Klasse wiederholt um die Grunddaten kümmern.

Noch einige Informationen zum Programm:
Es wird 20 bis 30 Sub-Klassen geben und einige tausend Datensätze/Sub-Klasse .Es handelt sich um eine Verwaltung von benutzer-definierten Eigenschaften einer Kontakt-Verwaltung. Also der Benutzer kann z.B. zu einem Kontakt eine zusätzliche Adresse anhängen usw.

Welche Möglichkeit würdet ihr nun empfehlen? Welche wendet ihr selbst an? Und aus welchen Gründen?
Oder gibt es gar eine andere Möglichkeit?

Vielen Dank schonmal für die Antworten!

BTW: Ist es schlecht, wenn eine Tabelle 3 oder 4 PrimaryKeys hat?

Mit freundlichen Grüßen,
DeveloperX

01.01.2006 - 17:34 Uhr

Hallo!

Bin mir nicht ganz sicher, aber ich denke das NewRow() müsst in die Schleife.

mfg

30.12.2005 - 23:56 Uhr

Hallo alf!

Übergibst du beim Aufrufen des Dialoges (Show() bzw. ShowDialog()) das übergeordnete Fenster?

mfg

30.12.2005 - 19:39 Uhr

Hallo!

Die ganzen Convert´s kannst du weglassen, weil daraus sowieso ein String gemacht wird wenn du es mit anderen string addierst:

label1.Text = Diff.Hours + ":" + Diff.Minutes + ":" + Diff.Seconds;

mfg