Laden...
Avatar #avatar-1724.gif
frisch myCSharp.de - Member
Fachinformatiker Anwendungsentwicklung Coburg / Oberfranken Dabei seit 18.08.2005 2.082 Beiträge
Benutzerbeschreibung
frisch durfte 2 Jahre lang auf eine Schule gehen und dort C und C++ lernen und dann musste er wieder von vorne anfangen... Meine Homepage ist in ASP.net programmiert. Einfach mal vorbeischauen. (Btw: Mir ist Funktionalität wichtiger als Design)

Forenbeiträge von frisch Ingesamt 2.082 Beiträge

07.08.2008 - 16:15 Uhr

warum die anderen nicht wollten- die normalerweise funktionieren- ist mir etwas rätselhaft Weil sich der virtuelle Pfad ändert, wenn du durch die Seiten mittels Unterverzeichnisse navigierst. Du brauchst dann relativen Pfad.

Kann sein, dass ich relativen und virtuellen Pfad gerade verwechsle. Bitte korrigiert mich wenns so ist.

07.08.2008 - 13:19 Uhr

Hallo KingPin,

versuchs mal mit

~/App_Themes/Style1/images/tobit.jpg
06.08.2008 - 14:34 Uhr

Hallo Jamal,

verwende float beim überprüfen ( oder decimal). Du benötigst ja schließlich die Kommastellen.

Übrigens ist deine Methodik sehr schlecht gelöst, verwende lieber ein float.TryParse anstatt einene Try-Catch-Block.

06.08.2008 - 14:29 Uhr

Hallo mofa321,

ich würde das Event eher in einem Rekursiven Aufruf anhängen,

also

private void BindEvent(ControlCollection controls) {
 foreach(Control ctrl in controls) {
  BindEvent(ctrl.Controls);
   if(ctrl is CheckBox)
     ((CheckBox)ctrl).MouseClick += new MouseEventHandler(Checkbox_MouseClick);
 }
}

Ich selbst nutze die .Find-Methode sehr sehr ungern, bzw. nur dann, wenn innerhalb der Klasse das Control nicht bekannt ist.

04.08.2008 - 10:32 Uhr

Hallo Dr.Z,

die DPI kann sich von Druckereinstellung zu Druckereinstellung unterscheiden -> andere Maße...

Außerdem musst du auch Seitenränder und Papiermaße beachten.

Du kannst aber per Graphics-Objekt berechnen, welche Breite der Text benötigt.

Mit

Graphics g = Graphics.FromHandle(printForm.Handle);
g.MeasureString(...);
04.08.2008 - 10:23 Uhr

*.cfm *.cfc *.js *.gif *.jpg

hm... hab gerade nen filter kopiert gehabt 😁

24.07.2008 - 12:02 Uhr

Hallo wettmasta,

überprüfe mal deine ReportBounds bzw. Höhe/Breite der Seiten. Ich vermute mal, dass die Höhe größer ist, als die physikalische Seitenhöhe.

Der ReportViewer zeigt soweit ich weiß nur die theoretische Höhe/Breite and, genause wie die theoretische Seitenanzahl.

22.07.2008 - 09:20 Uhr

Nicht aufregen herbivore 😉 der Klügere gibt doch nach. Ich kenne das Problem, dass manchen garnicht geholfen werden will, sondern dass diese lieber andere die Arbeit machen lassen... In solchen Fällen ignoriere ich diese Person dann einfach 😄

19.07.2008 - 14:44 Uhr

Happy Birthday myCSharp.de!

18.07.2008 - 13:14 Uhr

Hallo DaSashStYle,

wenn du weißt, dass es ein Enum und welcher Enum es ist, verwende doch lieber:

MyEnum = (MyEnum)Enum.Parse(typeof(MyEnum), lstBorder.SelectedItem.Text);
18.07.2008 - 13:11 Uhr

Hallo martin_zi,

welches VS?

Beim 2005 hast du die Möglichkeit, beim debuggen einen Haltepunkt zu machen. Dann Rechtsklick auf die Variable und "Überwachung hinzufügen" klicken.

Wenn du willst, dass Breakpoints nicht immer anhalten, kannst du Rechtsklick auf den Breakpoint machen und dann auf "Bedingung" klicken.

10.06.2008 - 23:18 Uhr

Hallo Da-Ben,

simuliere doch keep-alives, da du ja auch die Gegenstelle programmiert hast, dürfte das kein Problem sein.

Zusätzlich könntest du ja noch mit CheckSums arbeiten, also eben die Menge der Empfangenen Bytes als Antwort schicken.

19.02.2008 - 18:22 Uhr

Hallo felixfkccc,

Stichwort: Events

11.02.2008 - 09:36 Uhr

Hallo plugnpray,

myDataGridViewRow.Selected = true;

Wie du da hinscrollen kannst, weiß ich jetzt nicht. Bei ListView gibts ja EnsureVisible aber das ist hier nicht der Fall.

08.02.2008 - 18:06 Uhr

Naja, ist bei mir leider etwas problematisch, da ich mit 4 anderen unterwegs bin. Am Freitag Abend möchte die Cousine von einem der mitgeht, mit uns und ihrer besten Freundin in die Stadt gehen. (Party machen) 😁

Wär ja fast ne Idee, das myCSharp Shirt zu bestellen 😜

08.02.2008 - 16:56 Uhr

Dann weiß ich ja, wo ich übernachten kann 😁

08.02.2008 - 16:23 Uhr

Hallo,

ich habe in meinem DataGridView Zeilen, bei den ich meine Zelle slebst zeichnen muss.

Bsp:

Textzeile hat Colspan 3 also die Zelle über 3 weitere Zellen zeichnen.

Das klappt soweit auch ganz gut, jedoch habe ich jetzt das Problem, dass die Zellen, die ich überzeichnet habe, nichtmehr von selbst refreshen.

Bsp:

  1. Textzelle gezeichnet
  2. Dialog geöffnet, der über den anderen Zellen erscheint
  3. Dialog geschlossen
  4. Jetzt ist der DialogTeil der über den Zellen lag noch sichtbar, da diese ja nicht refreshen, sondern nur gezeichnet werden, wenn Zelle 1 (die, die den colspan besitzt) neugezeichnet werden muss.

Ich könnte jetzt natürlich die anderen Zellen wieder zeichnen lassen, wenn dies benötigt wird, allerdings würde dann mein selbst gezeichneter Text wieder überschrieben werden sprich die Colspan geht verloren.

Wie kann ich also bewerkstelligen, dass die Zellen, die neu gezeichnet werden müssen, nach dem Dialog wieder so aussehen, wie davor?

Ich kann mir den Zustand der gezeichneten Zellen ja schlecht zwischenspeicher oder?

// Edit:

Ich könnte ja auch, sobald eine Zelle neu gezeichnet wird, den Vorgang von Zelle 1 zeichnen wiederholen, jedoch ist das doch sehr unperformant

08.02.2008 - 09:37 Uhr

Hallo,

wollte mal fragen, ob jemand zur diesjährigen Cebit geht.

Ich gehe am 6. und am 7.

07.02.2008 - 17:06 Uhr

Hallo,

dürfte allerdings auch kein so großes Problem sein.

Einfach eine neue Property erstellen, dessen getter und setter du entsprechend so modifizierst, welches den XmlSerializer verständliche Daten liefert und der original Property verpasst du einfach ein XmlIgnore.

07.02.2008 - 10:42 Uhr

Hallo,

wie meine Vorredner schon erwähnt haben, liegt es wohl an etwas anderem.

Ich sage da nur Panel und der Tipp von Andreas.May.

06.02.2008 - 19:01 Uhr

Hallo ECP,

DriveInfo[] drives = DriveInfo.GetDrives();

hat alles, was du brauchst.

06.02.2008 - 13:19 Uhr

Hallo,

Wie lautet der Code vom erstellen des XmlSerializers bis hin zum serialisieren?

Ich schätze mal, dass du schon mehr als nur die ArrayList serialisieren willst 😉

Für Serialisierung empfehle ich immer eigene Klassen in der du dann die Properties mit XmlAttribute, XmlElement, XmlIgnore etc. kennzeichnen kannst.

05.02.2008 - 14:25 Uhr

Hallo Teilzeitstudent,

das Problem dürfte wohl bei auftreten, da du den ToolTip in einem MouseMove-Event setzt. Das Event wird ja dauernd aufgerufen wenn deine Mouse bewegt wird.

Versuche mal das hier:

private void treeListTests_MouseMove(object sender, MouseEventArgs e)
        {
            DevExpress.XtraTreeList.TreeListHitInfo hi = treeListTests.CalcHitInfo(e.Location);
            if (hi.Node != null && (toolTipDataSource.Tag == null || toolTipDataSource.Tag != hi.Node))
            {
                object nodeValue = hi.Node.GetValue(0);
                if (nodeValue != null && nodeValue is ClassDataSourceItem)
                {
                    ClassDataSource dataSource = (nodeValue as ClassDataSourceItem).DataSource;
                    toolTipDataSource.SetToolTip(treeListTests, dataSource.Name);
                }
                else
                    toolTipDataSource.SetToolTip(treeListTests, "");
            }
            else if(hi.Node == null) {
                toolTipDataSource.SetToolTip(treeListTests, "");
            {
        } 

Nicht getestet, sollte aber funktionieren.

//Edit: Oh hab jetzt erst das Datum des Posts gesehn 😁 sry, das kommt davon wenn man die Suche benutzt 😜

05.02.2008 - 13:25 Uhr

Hallo,

ich möchte auch gerne mal ein Wort dazu sagen:
Man sollte zumindest wissen, was Struktogramme sind und wozu sie dienen. Es gehört einfach zur grauen Theorie...

@svenson:

Mit den Lehrern hast du absolut Recht. Den Informatikunterricht in der Schule kann man total vergessen. Was man in 16 Stunden Unterricht lernt, lernt man bei praktischer Anwendung, z. B. im Betrieb oder Zuhause, einfach viel schneller.

Lehrer haben ihr Wissen ja im allgemeinen nur aus Büchern und deshalb ist deren Horizont auch ziemlich begrenzt...

Das ist zumindest meine Erfahrung. Es gibt Lehrer, die sich zwar etwas besser mit der Materie auskennen aber auf dem neusten Stand ist so gut wie Niemand.

Es ist schon irgendwie peinlich, ich hatte schon im 1. Lehrjahr mehr Plan von Informatik als irgend ein Lehrer, der mich unterrichtet hat. Dementsprechend war der Unterricht auch sehr sehr langweilig X(

01.02.2008 - 19:02 Uhr

Naja, mein Gedanke war halt, dass immer die gleiche Speicherposition beschrieben wird wenn ich die Variable vor der Schleife deklariere als immer eine neue Position im Speicher zu beschreiben.

Da dies aber nicht so ist, hab ich mich nun für die Deklaration in der Schleife entschieden.

31.01.2008 - 17:16 Uhr

ich glaub in pascal ists auch pflicht in einer methode erst alle variablen zu definieren, und dann erst den code. Nennt sich Prototypen und gibts in C++ auch 😉

31.01.2008 - 15:49 Uhr

Danke, das hilft mir sehr weiter. Werde in Zukunft also lieber Variante 2 gebrauchen.

31.01.2008 - 15:00 Uhr

Hallo,

mir fällt des öfteren auf, dass ich beim programmieren von Schleifen immer darauf achte, dass ich Variablen, die ich innerhalb meiner Schleife neu defeniere, immer vor der Schleife deklariere.

Also immer:

MyObject changingObj = null;

foreach(DataGridViewRow dgvRow in dgvMyObjects.Rows) {
  if(dgvRow.Tag != null && dgvRow.Tag is MyObject) {
     changingObj = dgvRow.Tag as MyObject;
     // DoSomething
  }
}

Wobei doch auch folgendes möglich wäre:

foreach(DataGridViewRow dgvRow in dgvMyObjects.Rows) {
  if(dgvRow.Tag != null && dgvRow.Tag is MyObject) {
     MyObject changingObj = dgvRow.Tag as MyObject;
     // DoSomething
  }
}

Das schlimme dabei ist, dass mir aufgefallen ist, dass ich garnicht weiß, warum ich das so mache. Ich dachte eben immer von der Logik her, dass dann der Speicher nicht immer neu reserviert wird also immer einfach der alte Speicher überschrieben wird und somit ist das Programm ressourcenshonender.

Liege ich damit richtig oder besteht zwischen den beiden Varianten garkein Unterschied?

30.01.2008 - 22:51 Uhr

Hallo pool,

binde einfach mal das EnabledChanged-Event des menuItems an und mach dann hier einen haltepunkt, dann dürftest du ja sehen, wann es auf disabled gestellt wird oder lass nach "dateiMenuItem.Enabled = false" im ganzen Projekt suchen.

28.01.2008 - 23:45 Uhr

Neue Version auf meiner Page vorhanden.

V 0.586:

  • Improved: Connectionloss handling
  • Changed: Messages are colored now due to their criticalness
  • Some minor bugfixes

V 0.58:

  • Refined new download dialog
  • Fixed: A problem when setting Exact Search without searchresults

V 0.574:

  • Added: Possibility to add a download using its sourcefile-location only
  • Added: Dialog on closing
  • Fixed: A problem with the downloadqueue when deleting running Downloads

V 0.571:

  • Added: Running/Waiting Downloads will be resumed on next Application start

V 0.570:

  • Changed: Exact Search operating
  • Fixed: Some invalid filechars have not been removed on downloads
  • Improved: The listperformance

V 0.569:

  • Added: Download Queue
  • Some minor bugfixes
28.01.2008 - 23:25 Uhr

Naja das größte Problem hierbei liegt doch aber daran, dass man schon bei den Benutzereingaben kein 0-Divider zulassen darf 😉 das wäre dann imho das beste Fehlerhandling.

26.01.2008 - 14:00 Uhr

Hallo,

ich frage mich welchen Zweck das erbringen soll da die Events ja eh erst in der Runtime angehängt werden.

Es hält dich aber keiner davon ab das TextChanged-Event aufzurufen wenn du deine TextProperty aufrufst 😉

23.12.2007 - 17:38 Uhr

Hallo stefan1979,

klingt mir verdächtig nach einem Dictionary-Objekt. Aber Properties gibt es auch.

20.12.2007 - 19:01 Uhr

Du rufst ja auch 2 mal ShowDialog() auf.

Also entweder nur

ShowDialog() == DialogResult.X

oder

folderBrowserDialog.ShowDialog();

if(folderBrowserDialog.DialogResult == DialogResult.X
08.12.2007 - 16:56 Uhr

Legalität:
Ich hab eine offizielle Bestätigung von Stage6 erhalten, dass mein Programm legal ist. Ich werde demnächst vielleicht sogar mit Stage6 koopierieren und das Tool auf ihrer Seite anbieten.

V 0.568:

  • Fixed: Stage6 changed their loginpage therefore a fix was needed to find +18-Videos again

V 0.567:

  • Changed: Search needs to be cancelled before setting the search type on active search

V 0.565:

  • Changed: SystemTray-Tooltip has more Informations now
  • Fixed: Critical Bug with Tag-Search
06.12.2007 - 15:52 Uhr

Original von serial

  
foreach(DataRow row in table.Rows)  
{  
  labels.add(row["spaltenname"].ToString();  
  ...  
}  
  

Funktioniert, wenn labels vom typ List<string> ist. Arrays haben keine Add-Methode. Nur so als Hinweis 😉

06.12.2007 - 14:23 Uhr

Auch die Registrierung in einer DataTable bzw. DataSet mit mehreren DataTables wäre sinnvoll und würde vieles erleichtern. Erstelle ein DataSet und speichere die Struktur mit DataSet.WriteXmlSchema(filename) als xsd-Schemadatei. (Es geht auch umgekehrt, sofern Du die xsd-Struktur kennst oder verstanden hast; dann kannst Du diese Datei als Ausgangspunkt nehmen.) ARGH! Bitte missbrauche die DataTables nicht als Konfigurationsschema... Imho ein sehr schlechter Ansatz, da DataTables einfach zu viele Abhängigkeiten haben wenn ihr mich fragt.

Eine Konfigurationsklasse die sich serialisieren lässt ist finde ich einfach die beste Möglichkeit. So mache ich das z. B. in meinem Downloader-Projekt.

Wie würde das bei DataTables sonst aussehen? Eine Table mit id, name und was? Du brauchst ja meist spezifische Datentypen für eine Setting Bsp: Location = Point, Size, Width = int, usw.

Die Serialisierung kann man dann ja in die Klasse selbst als Load/Save-Methode implementieren.

06.12.2007 - 11:07 Uhr

Hallo Hmpf,

ich würde Nummer 2 von King-Moes Vorschlag nehmen allerdings verstehe ich nicht was er mit parsen meint...

Dein Stichwort lautet Xml-Serialisierung bzw. XmlSerialization. Einfach eine Eigene Klasse mit Properties schreiben (deine Einstellungen bsp. public int Width für die Breite der Form) und dann mit Xml serialisieren.

Funktioniert sehr einfach und Programmiererfreundlich.

Wenn du dann schon Serialisierung verwendest solltest du dich mit den Xml-Attributen in der Klasse auseinandersetzen (Bsp: [XmlElement("Breite")] und [XmlIgnore]).

Das dürfte dir schonmal soweit helfen.

05.12.2007 - 13:32 Uhr

Hallo,

ist es möglich, bei den o. g. Objekten die Bandbreite zu beschränken bzw. wenn man sich dann z. B. den Response Stream holt und die darin enthaltenen Daten ausliest?

03.12.2007 - 21:31 Uhr

V 0.56:

  • Added: Some new GUI Icons
  • Added: Manual Input of Downloads
  • Changed: Enabled multiselect on searchresult

V 0.5323:

  • Added: "Exact Titlesearch" to the menu
  • Improved Search: results must contain at least one keyword in their title now
  • Fixed: Running Downloads were displayed wrong on notify icon
  • Some minor bugfixes

V 0.5320:

  • Added: Minimize to Tray

V 0.5310:

  • Added: Autosave every 5 Minutes
  • Added: Previewboxes will be resized dynamically now
  • Fixed: Start multiple Downloads
  • Some minor bugfixes

V 0.5306:

  • Changed: Icons overworked
  • Fixed: Bug with imports of downloads
29.11.2007 - 10:41 Uhr

CodeTags benutzen.

einfach

if(lowBorder % 2 == 0)
29.11.2007 - 09:41 Uhr

Hallo herbivore,

Wenn du das Laden abbrechen können willst, musst du dir selber eine asynchrone Methode dafür implementieren. Ja sowas habe ich schon befürchtet.

Trotzdem finde ich das verhalten komisch, ich habe auch keine Probleme wenn ich bei Thread.Sleep nur 10 Millisekunden übergebe.

Fakt ist halt, dass bei zu schnellem LoadAsync einfach keine Bilder mehr geladen werden. Vielleicht ist das OS-abhängig, was ich allerdings zu 90% ausschließen kann.

Werde mir dann wohl einfach eine eigene PictureBox schreiben.

28.11.2007 - 21:12 Uhr

Hallo,

habe eine PictureBox und eine Liste mit diversen Bildadressen. Jetzt wähle ich ein Item aus der Liste und führe dann die LoadAsync-Methode mit dem Parameter an meiner PictureBox aus.

Klappt soweit auch.

Problemfall:
Wechsle ich schnell zwischen 2 Items hin und her, bevor das Bild vom ersten Item fertiggeladen wurde, wird meine Box nichtmehr refreshed d. h. ich bekomme keine aktuelleren Items.

Ich könnte natürlich auch die Load-Methode nutzen allerdings ist es nicht so schön wenn die GUI blockiert und einen eigenen BackgroundWorker nur wegen der Box möchte ich da nicht verwenden.

//Edit:

Habe jetzt einen kleinen WorkAround gefunden. Es scheint nichts mit dem Laden von der Uri zutun zu haben, denn unabhängig von der Geschwindigkeit tritt das Problem auf. Mit einem Thread.Sleep(100) vor einem neuen LoadAsync klappts allerdings.

Sehr sehr unschön gelöst imho aber leider weiß ich atm auch nichts besseres.

Wäre toll wenn mir jemand eine Erklärung zu dem Phänomen abgeben könnte.

28.11.2007 - 19:04 Uhr

Hallo Joe86,

du kannst ja die Events von der zweiten und dritten Box abhängen und am ende des Events aus Box 1 wieder anhängen.

28.11.2007 - 19:02 Uhr

Das Variablenhandling ist in der Webprogrammierung nicht so einfach wie beim Standalone programmieren. Du könntest allerdings eine Variable in die Application oder Session schreiben und dir die dann an einer anderen Stelle die Variable wieder holen.

28.11.2007 - 17:31 Uhr

Hallo Wanginator,

würde hierfür eine eigene PanelCollection schreiben, bei der du z.B. das ActivePanel als Property gibst und in der Set-Methode kannst du ja sagen this.Controls.Clear() und dann this.Controls.Add(value) usw.

Ist nicht sonderlich schwer.

28.11.2007 - 17:29 Uhr

Hallo michlG,

ich würde das ganze per XmlSerialization machen. Die Raw-Xml kannst du dann ja nochmal encrypten und beim auslesen wieder decrypten.

28.11.2007 - 14:17 Uhr

@1) Du kannst höchstens das Session_End-Event verwenden (befindet sich in der Global.asax

26.11.2007 - 20:46 Uhr

V 0.5305:

  • Added: New Versionformat
  • Added: Import/Export possibility
  • Changed: Size of the Buttons
  • Changed: Instead of removing searchresults when doubleclicking they will be striked out
  • Fixed: Some of the new gui elements
  • Fixed: Error on moving a used file
  • Fixed: Wrong Previewimage on some Downloads

Viel Spaß beim Listensharen 😉

23.11.2007 - 17:05 Uhr

Hallo nathy84,

die SID steht in der registry, Google mal nach "SID registry" dann findest du gute treffer. (Ohne ")