Laden...

Forenbeiträge von Steav Ingesamt 142 Beiträge

28.07.2008 - 16:13 Uhr

Hallo allerseits,
habe hier ein (meines Erachtens nach) merkwürdiges Problem.

Auf der Startseite meines Projekts (Default.aspx, die nicht von der Masterpage abgeleitet ist, werden AnmeldeDaten eingegeben, die dann als Cookies gespeichert werden. Daraufhin wird man zu Seiten weitergeleitet, die allesamt die selbe MasterPage teilen.

Nun habe ich im Page_Load Event der Masterpage eine Abfrageroutine, welche die Cookies überprüft ---> Funktioniert auch wie vorgesehen.

Allerdings "erkennt" die MasterPage ausschließlich Cookie.Value, also den Wert des gesetzten Cookies.... Cookies.Expires ist immer der Defaultwert (01.01.0001 00:00:00).

Meine Frage: Wieso ist die MasterPage nur in der Lage den Value zu erkennen, nicht aber das Expiry-Date? Habe das ganze intensiv getestet und live beim Debuggen in Firefox war ein Expiry-Date eindeutig gesetzt.

Einen Workaround für dieses Problem habe ich bereits umgesetzt... bleibt also nur noch die Diskussion, weshalb sich die MasterPage querstellt 😉

Thx 4 patience,
Steav

06.07.2008 - 13:53 Uhr

Wusste ich noch nicht, ist aber sehr praktisch.
Thx!

20.06.2008 - 09:42 Uhr

Hallo allerseits,

vielen Dank für die Antworten.

Meine Endgeräte sind mit dem PC verbunden, wie gesagt bin ich bereits in der Lage mit meiner Anwendung eingehende Anrufe zu überwachen.

Dann finde ich mich damit ab 'zunächst' nur eingehende Anrufe kontrollieren zu können bis ich weitere Infos bezüglich meines Systems gesammelt habe (ich verwende die TAPI-Treiber, die die Fritzbox mit sich liefert), gehe aber zu gegebener Zeit mal eine Stufe tiefer und untersuche die Tapi-Treiber meiner Fritzbox selbst, anstatt nur im Wrapper zu forschen.

Diese Diskussion hat sich also dann erledigt

Mfg Steav

18.06.2008 - 10:10 Uhr

Hallo tom-essen,

Vielen Dank für die Antwort. Das wäre möglich... wie gesagt bin ich noch total unerfahren im Bezug auf Tapi.

Kannst du mir erklären, inwiefern die S0-Geschichte für mich eine Rolle spielt, wenn ich kein ISDN habe, sondern DSL an meinen analogen Anschluss habe?

Mfg Steav

18.06.2008 - 07:30 Uhr

Hallo Jo0oker,

Ich habe die Erfahrung gemacht, dass Crystal Report, auch wenn es das laut Überladungen unterstützt nicht mit einem übergebenen DataSet funktioniert.

Versuche doch mal, eine Tabelle deines DataSets zu übergeben, im Zweifelsfall musst Du Dir dann natürlich erst eine "Sammeltabelle" mit allen nötigen Report-Spalten zusammenstellen.

16.06.2008 - 19:58 Uhr

Hallo allerseits,

Ich arbeite seit gestern mit dem Julmar TAPI-Wrapper in Zusammenhang mit den TAPI-Treibern meiner FRITZ!Box Fon.
http://www.julmar.com/tapi/

Soweit funktioniert er ganz gut für eingehende Anrufe. An die Grenzen stoße ich allerdings schon, wenn ich auch ausgehende Anrufe per Event auf meinem Screen anzeigen lassen möchte. Es scheint einfach kein Event dafür zu geben.

Hierbei hoffe ich auf Hilfe von jemanden, der mit eben diesem Wrapper schonmal gearbeitet hat, da ich den Link in einem Thread hier gefunden habe 🙂

Thx, Steav

:EDIT: Achja, ich benutze ITAPI3. Es scheint keine Dokumentation zu geben, und in dem Outgoingsample wird lediglich ein Anruf aufgebaut. Ich möchte aber auch Anrufe angezeigt bekommen, wenn sie nicht von dem PC ausgehen, sondern von einem Telefon in der Leitung.

14.06.2008 - 19:55 Uhr

Hallo n1smo,

Application.OpenForms gibt ein Array zurück, das alle offenen Fenster der Anwendung enthält. Dieses kannst du verwenden um dir dein Menustrip aufzubauen.

Mfg Steav

Das ganze könnte dann in etwa so aussehen

tsmi steht für toolstripmenuitem


        private void tsmiFenster_DropDownOpening(object sender, EventArgs e)
        {
            tsmiFenster.DropDownItems.Clear();

            for (int i = 0; i < Application.OpenForms.Count; i++)
            {
                ToolStripMenuItem tsmi = new ToolStripMenuItem();
                tsmi.Text = Application.OpenForms[i].Text;
                tsmi.Tag = Application.OpenForms[i];
                tsmi.Click += new EventHandler(tsmi_Click);
                tsmiFenster.DropDownItems.Add(tsmi);
            }
        }


        void tsmi_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem SenderTSMI = (ToolStripMenuItem)sender;
            Form WahlForm = (Form)SenderTSMI.Tag;
            WahlForm.Focus();
        }

13.06.2008 - 16:45 Uhr

Ich hätte Deutschland schon gerne noch gewinnen sehen.

Schweinis Reaktion auf die rote Karte fand ich gerechtfertigt, hätte genauso gehandelt.

13.06.2008 - 16:22 Uhr

Hallo Halla,

Die beste und auch übliche quelle ist

http://www.pinvoke.net

mfg Steav

24.04.2008 - 10:27 Uhr

Hallo steffen_dec

Wieso misst du es nicht einmal mit einer StopWatch?

Meiner Logik nach müsste eine for-schleife schneller sein.

23.04.2008 - 14:00 Uhr

Ich hab mir ne extrem simple Anwendung geschrieben die meinen Projektordner kopiert & mit Datum benennt. Und im Fall eines Fehlers ne .txt log auf dem desktop hinterlässt.

15.04.2008 - 15:26 Uhr

Hallo allerseits,

Problematik:
Ich programmiere einen IRC-Client optisch ähnlich aufgebaut wie mIRC, x-chat etc sprich:

Links in einem TreeView die Server/Chan-Liste, unten mittig eine Textbox zum Text eingeben. Um das zu trennen verwende ich einen SplitContainer.

Nun möchte ich nach dem Selektieren eines TreeNodes die Textbox als ActiveControl haben, was aber nicht funktioniert. Auch unmittelbar nach


ActiveControl = tbMessage;

bleibt das ActiveControl "{System.Windows.Forms.SplitContainer}".

Habe auch bereits viele Alternativmöglichkeiten ausprobiert sowie die Forensuche & Google intensiv benutzt, hoffe ich war nicht einfach nur blind. Freue mich über Lösungen 😉

Steav

Edit:
Oh man wie das Leben so spielt nach langer Recherche hier gefragt, und direkt nach dem eröffnen des Threads festgestellt, dass ich auf der falschen baustelle gesucht habe 😉

Das Problem war, dass ich das ganze im AfterSelect-Event gemacht habe. Anscheinend wird nachdem das Event durchlaufen ist erst das Objekt gewählt, sprich mein ActiveControl einfach überschrieben. Habe das ganze nun im 'Enter' Event realisiert.

Danke, Steav

15.03.2008 - 22:18 Uhr

Hallo allerseits, ich hoffe es gab diesen Thread noch nicht (Habe Nichts gefunden) und er ist nicht zu 'kindisch'.

Ich bin jemand der äußerst gerne über Sachen nachliest die ich jetzt nicht brauche, die aber von allgemeinen Nutzen sind / sein könnten und dachte deshalb wir machen hier einfach mal einen "Sammelthread stichhaltiger Begriffe" mit denen man per Google & Forumsuche einschlägige & weiterführende Informationen finden kann...

Hatte da so an einen Schwierigkeits & Kathegorien-Grad von Leicht bis Mittelschwer gedacht, alles realistische eben 🙂 Die angesprochenen Dinge sollten mit C# umsetzbar sein.

Um mal ein paar Beispiele in den Raum zu werfen:

Windows API

WCF

TAPI

Interessante Dinge über die man im Leben des Programmierens eben so stolpert 🙂 Hoffe von einigen erfahreren Leuten interessante Dinge zu hören, falls der Thread halbwegs erfolgreich wird werde ich die Stichwörter in diesem Beitrag sammeln mit einer minimalen Orientierungshilfe wozu es dient und ggf. mit dem auch gerne mit dem gemachten Beitrag verlinken. Hauptaugenmerk sollte allerdings wie gesagt der 'Reiz' des Selbstnachforschens sein.

Mfg & schießt los 😁

14.03.2008 - 15:29 Uhr

Ist ganz interessant.... "Programmieren" lernt man damit zwar nicht, aber es ist schon toll um Leuten die mal einsteigen wollen, bzw gerade anfangen den Syntax der Sprache zu lernen einige Prinzipien zu vermitteln.

Wenn ich einen kleinen Bruder hätte (vorausgesetzt er hätte die Bereitschaft & Auffassungsgabe) würde ich ihm versuchen Auntme näherzubringen.

20.02.2008 - 11:44 Uhr

Hallo Sven22,

vielleicht hilft dir folgender Thread weiter:

Managed Code/Objekte in Unmanaged Code verwenden

mfg Steav

17.02.2008 - 18:48 Uhr

Beim Debugging werden aber alle ausgewählten Dateien geöffnet.

Das ist doch schon fast die Antwort..... vermutlich funktioniert es beim Debuggen, weil da 'Pausen' zwischen sind. Es ist also ein zeitliches Problem. Versuch doch mal eine Pause einzubauen.

04.02.2008 - 10:44 Uhr

Nur die txtRelease ist ja nicht leer, es steht ja die Maske .__ drin!

Hallo Andreas-82,

ob in der .TEXT eigenschaft einer MaskedTextboxen auch diese Zeichen enthalten sind (in deinem Falle "_" und ".") kannst du über die Eigenschaft "TextMaskFormat" definieren... wenn du im Falle keiner eingabe ein leeres Ergebnis haben möchtest, wäre da der Wert "ExcludePromptAndLiterals" angebracht.

Mfg Steav

04.02.2008 - 10:38 Uhr

moin alle =)

ich hab bis jetzt noch nicht viel gemacht mit c# :rtfm:

deswegen meine Frage: ist es möglich mit c sharp makros zu erstellen?

Also in bestimmten Zeitabständen oder zu einer bestimmten Zeit ein Ereigniss auslösen wie z.B bewege maus nach Koordinate (230x,890y) und drück danach F8 und Enter?

Erkenne Pixel Farbe.... wenn Farbe ROT dann formatiere \daten\usbstick1 ?

Danach bewege Mauszeiger zu Textbox von Anwendung X und schreibe Hallo Welt hinein?

Wäre toll wenn ihr mir da ein paar Tipps geben könntet 😄

Hallo virox,

Wie meinst du das? Möchtest du einen Windows-Service-Dienst programmieren und dort Hooks für diese Tasten programmieren oder wie? Das wäre machbar!

04.02.2008 - 02:42 Uhr

Hallo metalhead,

in Visual Studio kannst du im Solution-Explorer Referenzen hinzufügen. So bindest du auch eine Library ein.

Danach musst du den Namespace der Library in deinen usings einfügen. Bei mir hats meißtens mit dem Namen der .dll gut geklappt, ansonsten stehen die Namespaces in der Doc.

Mit dem .NET Reflector habe ich noch nicht soviel gearbeitet, aber vielleicht hilft der dir im Notfall ja auch weiter.

04.02.2008 - 02:33 Uhr

Witzig, genau über das Gleiche hatte ich mir auch heute Gedanken gemacht. Auch mich hat erstaunt, dass eine simple Anwendung wie ich sie hatte, 10-12 mb Speicher verbraucht hat.

Das waren bei mir allerdings eher die Timer, als die Form.

Was mir allerdings positiv aufgefallen ist:
Als die Anwendung in den Tray minimiert war, verbrauchte sie nur noch ~2-3 MB.

Das ist ein Zustand mit dem ich sehr gut leben kann, ein aktives Fenster nutzt den Speicher und gewährt eine gute Performance, aber als background-application verhält es sich schön unauffällig.

04.02.2008 - 02:26 Uhr

Hallo allerseits,

Ich weiß nicht, ob das jetzt die Lösung ist, aber wollte an dieser Stelle mal auf die GData Library für .NET hinweisen.

http://code.google.com/p/google-gdata/

Ich habe mit dieser Library bisher ausschließlich mit Youtube gearbeitet.

24.01.2008 - 04:30 Uhr

Hallo SirBlunderbrain,

http://nexe.gamedev.net/files/MDX-Overlay-2006-01-04.zip

Diese Sample-Solution (c#) für ein DirectDraw Overlay könnte dir weiterhelfen.

Es macht eine Box mit Text auf den Bildschirm, die auch über Fullscreenanwendungen dargestellt wird.

mfg Steav

23.01.2008 - 17:59 Uhr

Das OnKeyPress Event des Webbrowser Conrols ist leider eine geschützte Methode, an welcher man nicht rankommt.

Hallo Fotograf,

könntest du das Problem nicht mit einem Key-Event des Forms mit einer vorherigen Abfrage ob das WebBrowser Control das fokusierte Control ist umgehen?

Mfg Steav

22.01.2008 - 01:38 Uhr

Dann kann ich das Feld doch gleich public setzen, oder nicht?
Nein, dass solltet man also keinesfalls tun!

herbivore

Guten Tag.... interessante Diskussion, habe mir darüber auch schonmal Gedanken gemacht.

Kannst du erläutern, warum man das keinesfalls tun sollte?

22.01.2008 - 01:34 Uhr

Weil die Seite auf Woltlab Burning Board basiert...

31.12.2007 - 14:09 Uhr

Der CrystalReport ist auch in der Lage 'FormelFelder' zu erstellen. Dort kannst du dir in einem Editor das Verhalten des Feldes mit Bedingungen oder Berechnungen programmieren.

Leider ist das recht umständlich, und man arbeitet nicht etwa im c# Syntax, sondern wahlweise im Crystal / Basic Syntax.

31.12.2007 - 03:51 Uhr

Dafür könntest du auf die Windows-API zurückgreifen. Dabei kann man immer gut www.pinvoke.net als Informationsquelle verwenden, und natürlich die MSDN.

http://www.pinvoke.net/default.aspx/netapi32/NetJoinDomain.html
kam zum Beispiel zum Suchbegriff "Workgroup" raus... muss man immer biserl Recherche treiben & rumprobieren.

Mfg Steav

30.12.2007 - 23:57 Uhr

Hallo Steav,

danke für deine Antwort. Was meinst du mit testweise nur eine Tabelle? Direkt aus der DB ohne das Dataset? Wenn ja, dies habe ich schon probiert und es funktioniert. Es scheint wirklich am DS zu liegen.

Bin jetzt bald schon so weit, es doch im lahmen ReportViewer zu machen 😉

Ja genau so meinte ich das. Ich hatte damals das Selbe Problem, es sollte aber auch kein Problem darstellen, dir eine Tabelle mit den für den Report benötigten Daten vor der Reporterstellung zusammenzustellen.

Ist zwar zusätzliche Arbeit, dafür kommst du aber zu dem von dir gewünschten Ergebnis. Mfg Steav

30.12.2007 - 23:04 Uhr

Hallo Chaser0815,

Wenn du vorher weißt, dass dieses Fenster kommen könnte, könntest du vor dem Refresh-Befehl die Zahl der "offenen Forms" (Application.OpenForms.Count) abfragen, nach einem gewissen Delay diese .Count Zahl wieder abfragen und wenn sie sich erhöht hat (durch dieses Fenster) einen SendKey mit "h" durchführen SendKeys.Send("test");

Das ist nur ein Lösungsansatz der mir intuitiv eingefallen ist. Sicherlich gibt es "sauberere" Wege.
Mfg Steav

30.12.2007 - 22:33 Uhr

Hallo allerseits,

ich habe gerade mal auf die Schnelle den Key und die IV aus meiner Klasse, die ich für mein erstes Projekt mit DataSet-Speicherung im XML-Format gebastelt habe und seither auch in jedem Weiteren verwende "zensiert" um sie euch hier zur Verfügung zu stellen. Mir leistet diese Klasse aufgrund ihrer häufigen Verwendbarkeit große Dienste.

Tips für Anfänger:

  • Die "zensiert"-strings gegen einen eigenen Key- und IV-String eurer Wahl austauschen.
    -Namespace an euer Projekt angleichen, die Klasse instanziieren und mit Instanz.DsLaden(dateipfadstring, datasetinstanz) laden, oder mit
    Instanz.DsSpeichern(dateipfadstring,datasetinstanz) speichern.
    -"Sicher" ist diese Vorgehensweise natürlich nicht, die Keys und IVs können natürlich disassembled werden, allerdings schützt diese Verschlüsslung eure Datei gegen einen schnellen Zugriff von "jedermann".

Viel Spaß 😉 mfg Steav


using System;
using System.Collections.Generic;
using System.Text;

using System.Data;
using System.Security.Cryptography;
using System.IO;

namespace SilentIRC
{
    class cDSVerschluesslung
    {
        string key = "zensiert";

        public void dsSpeichern(string file, DataSet ds)
        {
            Rijndael crypto = Rijndael.Create();
            crypto.IV = ASCIIEncoding.ASCII.GetBytes("zensiert".PadRight(16, 'x'));
            crypto.Key = ASCIIEncoding.ASCII.GetBytes(key.PadRight(16, 'x'));
            crypto.Padding = PaddingMode.Zeros;

            if (File.Exists(file))
            {
                File.Delete(file);
            }

            using (FileStream stream = new FileStream(file, FileMode.OpenOrCreate))
            {
                using (CryptoStream cryptoStream = new CryptoStream(stream, crypto.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    ds.WriteXml(cryptoStream);
                    cryptoStream.Flush();
                    stream.Flush();
                    cryptoStream.Close();
                    stream.Close();
                }
            }
        }

        public void dsLaden(string file, DataSet ds)
        {
            if (File.Exists(file))
            {
                Rijndael crypto = Rijndael.Create();
                crypto.IV = ASCIIEncoding.ASCII.GetBytes("zensiert".PadRight(16, 'x'));
                crypto.Key = ASCIIEncoding.ASCII.GetBytes(key.PadRight(16, 'x'));
                crypto.Padding = PaddingMode.Zeros;


                using (FileStream stream = new FileStream(file, FileMode.Open))
                {
                    using (CryptoStream cryptoStream = new CryptoStream(stream, crypto.CreateDecryptor(), CryptoStreamMode.Read))
                    {
                        ds.Clear();
                        ds.ReadXml(cryptoStream);
                        cryptoStream.Close();
                        stream.Close();
                    }
                }
            }
        }

    }
}

30.12.2007 - 22:22 Uhr

Hallo seesharp,

Leider ist es schon ein Weilchen her, als ich mal mit Crystal Reports gearbeitet habe, aber ich meine mich waage erinnern zu können, dass auch ich dieses Problem hatte, wenn ich dem Report ein DataSet übergeben habe.

Versuch es doch mal mit der gleichen Vorgehensweise, wobei du dem Report allerdings eine Tabelle (lediglich testweise) übergibst.

falls das funktioniert kannst du dir ja dann vor dem erstellen eines Reports eine tabelle mit den benltigten Feldern aufbereiten.

Mfg Steav

30.12.2007 - 22:15 Uhr

Hallo pSych0,

erkundige dich mal über das Stichwort: "Global Mouse Hook". Solltest mit der Suchfunktion oder Google auf jeden Fall fündig werden.

Mfg Steav

30.12.2007 - 15:19 Uhr

Hallo vs_meier,

talla hat Recht. Das TreeView wird nicht automatisch sortiert... ich denke deine Problematik wird an einer anderen Stelle liegen. Vielleicht kann dir besser geholfen werden, wenn du deine Situation konkreter darstellst & ggf. Codeausschnitte hast.

27.12.2007 - 19:29 Uhr

Hallo allerseits.

Gibt es auch eine Möglichkeit die Windowssounds nur für meine Anwendung zu sperren? Ich programmiere gerade einen IRC-Clienten der jedesmal wenn man auf dem TreeView für die Server oder der TextBox für die Eingaben "Enter" drückt einen Windowston abspielt, insofern diese aktiviert sind.

Ich möchte dem Nutzer ungerne alle Windowstöne sperren, aber meine Anwendung soll keine produzieren. Dies gilt nicht nur für die Textbox, deren Töne man im KeyPress event blocken kann, mich würde viel mehr eine Möglichkeit interessieren eine Anwendung komplett zu 'muten' außer man möchte gezielt programmatisch einen ton ausgeben.

Wenn da jemand zufällig was weiß wär ne Antwort cool 😉 mfg Steav

27.12.2007 - 03:57 Uhr

Hallo allerseits,

Zunächst mal: Danke für diesen Thread, die Fragen & Antworten hier haben mir schon beim Verstehen der HtmlControls geholfen.

Praktischerweise wurde hier bereits ogame angesprochen, denn mein "Testprojekt" zum kennenlernen der WebBrowser-Klasse ist ein Programm, welches mich automatisch mit meinen Daten anmeldet.

Nun, soweit klappt alles ganz gut, ich bekomme den Browser dazu die Werte einzutragen & auch das richtige Universum einzutragen. Etwas allerdings hindert mein Programm nun sich nach Drücken des Login Buttons auch wirklich einzuloggen, die Seite lädt sich einfach neu & die Felder sind wieder leer.

Hat da jemand eine Idee was an diesem Login-Button besonders ist? Es macht keinen Unterschied, wenn ich die Daten manuell eingebe.

[ geklärt, war nicht die Ursache ]
Könnte es daran liegen, dass ich anstatt "http://www.ogame.de" "http://www.ogame.de/home.php" aufrufen lasse? Denn "home.php" wird auf ogame.de als Frame angezeigt, ich habe es allerdings nicht geschafft auf die Controls des Frames zuzugreifen ohne dieses direkt aufzurufen. Auch hierzu wäre ich für einen Hinweis sehr dankbar 😉
[/ geklärt, war nicht die Ursache (Tips zum Zugreifen auf Frames wären dennoch nett]

Mfg Steav

23.12.2007 - 14:22 Uhr

Wie das geht steht hier doch bereits? "ex.Message" ist der String, der deine Fehlermeldung enthält. Den musst du einfach ausgeben.

Wo genau liegt jetzt deine Problematik? Bei der Übergabe von "ex" an die Stelle wo der Fehler ausgegeben wird?

21.12.2007 - 15:08 Uhr

Se Zauberwort:

MD5 md5 = new MD5CryptoServiceProvider();  

Gruß
Dizzy, dein CryptoServiceProvider

Er fragt nach sichereren Möglichkeiten als Hashes, so wie ich es verstanden habe.

Hallo Tomot,

da fällt mir jetzt gerade auch nichts ein, md5 ist aufgrund der 'one way encryption' schon ziemlich sicher. Nur ist es, wie du schon behauptet hast gegen Bruteforce Attacken mit Rainbowtables recht anfällig.

Um hier nicht mit überlangen Passwörtern und Sonderzeichen arbeiten zu müssen würde ich dir nahelegen mit "salted hashes" zu arbeiten.

Mfg Steav

:edit: sory, muss mich hier selber korrigieren. Du möchtest deine Passwröter 'hardgecoded' speichern, das würd ja auch bedeuten, dass der Angreifer auch auf den Salt zugreifen könnte

21.12.2007 - 03:03 Uhr

Ich habe die Frage jetzt anders verstanden, und zwar so, dass er nach anderen Möglichkeiten fragt den User darauf hinzuweisen, dass ein Error stattgefunden hat.

Falls dem so ist:
Stichwort: "ErrorProvider"

Ich bin mir sicher, dass Google und die MSDN dir ausreichend Codebeispiele liefern können.

28.09.2007 - 12:42 Uhr

Genau.


for (Int32 a = 0; a < Convert.ToInt32(dataGridView1.RowCount.ToString()); a++)

Hier wird a schon bei jedem Durchlauf um 1 erhöht...


dataGridView1.Rows[a++].Cells[1].Value = "OK";

Hier erhöhst du ihn nochmal um 1.

19.09.2007 - 21:32 Uhr

Ja das geht über die Bindingsource.

12.09.2007 - 16:17 Uhr

ok die Frage hat sich erledigt. Danke für die Antworten.

Habe es so gelöst, dass ich die Anzeige im DataGridView einfach im "CellFormating" Ereignis angepasst habe.

Mfg Steav

12.09.2007 - 13:41 Uhr

verwendetes Datenbanksystem: <DataSet>

Hi. Ich hab ein kleines Problem mit der Formatierung von TimeSpan.

Situation:

Mein Programm berechnet den TimeSpan aus zwei DateTimes und setzt ihn in eine DataSet-Tabelle, die auf DatenTyp System.TimeSpan festgesetzt ist und das auch bleiben soll, sprich ich kann nicht in andere Formate wie bspw. einen String konvertieren.

Das Problem ist, dass im DataGridView das TimeSpan jetzt immer mit Sekunden angezeigt wird, sprich: hh:mm:ss, es aber nur als hh:mm angezeigt werden soll.

Hab mir jetzt schon 'die Finger wundgesucht' wie man diese Anzeige so bekommt ohne das Format zu ändern. Hatte auch versucht im DataSet-Designer den MaxLength Value auf 5 zu setzen, aber dann sagt er "Ungültiger Eigenschaftswert".

Weiß jemand eine Möglichkeit? Freue mich über Antworten.

Steav