Laden...
Avatar #avatar-2904.jpg
Benutzerbeschreibung

Forenbeiträge von knub Ingesamt 189 Beiträge

22.08.2007 - 12:09 Uhr

Original von sbertl000
Es sollte ein Ereignis "DoubleClick" geben...

sbertl

Wobei du dann noch im Ereignis mit


if([CheckedListBox].GetChildAtPoint(e.Location) != null)
{
}

prüfen solltest, das du auch wirklich ein Item erwischt hast, weil DoubleClick bei jedem Doppelklick irgendwo in der CheckedListBox ausgelöst wird.

knub

22.08.2007 - 12:07 Uhr

Hallo,

ich frag mich, wie du einen mehrseitigen Druck hinbekommen hast, wenn du "keine Ahnung vom Drucken hast".

Zeig mal die wesentlichen Teile deiner Druckroutine.

knub

20.08.2007 - 22:04 Uhr

Original von Danwe
Hat jemand ne Idee? Vielleicht ists möglich eine Form zu machen die sich vor alle anderen Programme drängeln kann, ich bin mir sicher sowas gibts.

Klar gibts sowas (Form.TopMost), aber ich würde es vielleicht mit einem richtigen nervigen Sound machen (Klingeln oder so).

knub

20.08.2007 - 11:29 Uhr

Hallo,

wie FZelle schon gesagt hat, du bist selbst verantwortlich fürs Drucken. Du musst also in deiner Druckroutine ([PrintDocument.Print]) selbst schauen, welchen Wert FromPage hat und dementsprechend drucken.

knub

20.08.2007 - 09:59 Uhr

Hallo,


[PrintDocument].PrinterSettings.FromPage
[PrintDocument].PrinterSettings.ToPage
[PrintDocument].PrinterSettings.PrintRange // wenn du alle Seiten einzeln angeben willst

oder mit einem PrintDialog.

knub

19.08.2007 - 12:16 Uhr

Hallo,


if(deinDialog.ShowDialog() == DialogResult.OK)
{
    //nur wenn der Dialog nicht abgebrochen wurde ..
}


knub

17.08.2007 - 17:52 Uhr

Es ist heute noch so. Aber nicht nur das, es gibt/gab die verschiedensten Kombinationen von Lichtern, u.a. grün-gelb und Blinklichter.
http://de.wikipedia.org/wiki/Lichtzeichenanlage#Standard-Lichtzeichenanlage

Aber nunja, das ist _leicht _offtopic.

knub

17.08.2007 - 17:14 Uhr

Original von squadwuschel
naja wenn ich im word 2003 auf speichern unter gehe und dort *.xml auswähle sollte dies doch das open xml format sein oder?

Das ist nicht open xml, sondern nur eine Vorversion von Office Open XML. Inwieweit die kompatibel sind, weiß ich nicht.
http://de.wikipedia.org/wiki/Office_Open_XML#Vorgeschichte

das was du meinst ist das dann die Hilfe für System.xml ?

Nein, er meint bestimmt das: http://www.microsoft.com/downloads/details.aspx?familyid=ad0b72fb-4a1d-4c52-bdb5-7dd7e816d046&displaylang=en

knub

17.08.2007 - 15:44 Uhr

Ok, jetzt erscheint mir deine Variante doch richtiger ^^.

17.08.2007 - 14:59 Uhr

Original von Wolf_maYer
Ich weiß ja nicht, in welchem Land ihr lebt aber in Deutschland funktioniert die Ampel, die ich kenne anders.
Es gibt 4 verschiedene Kombinationen.
Rot
Rot/Gelb
Grün
Gelb
und wieder von oben.

Kleba hat ja eine konkrete Aufgabenstellung bekommen, siehe erster Post, und da ist es ja erstmal egal, wie ne Amepl nun funktioniert, es geht ums programmieren 😉.

17.08.2007 - 14:45 Uhr

Original von knub
Im Form.Load hat das Control schon ein Parent. Der Parent wird ja in InitializeComponent zugewiesen, also kannst du das direkt nach InitializeComponent im Form-Konstruktor machen.

Original von MrSparkle
Nö.

Doch 😉 (ich schrieb ja im Form_Load).

Aber das hat mit der Sache bei dir nichts zu tun, weil du ja ein abgeleitetes Control hast (ich dachte ja, du arbeitest im Form.Load, weil da hat jedes Control schon seinen Parent).

Ich denke dir hilft. Control.ParentChanged

knub

17.08.2007 - 14:40 Uhr

Hallo,

Wenn du auf den Button klickst, gibt es drei Möglichkeiten (zwei einfache und einen schwereren).
Wenn die Farbe Rot ist, und du klickst auf den Button, dann muss die Ampel auf jedenfall auf Gelb umschalten.
Genauso ist es bei Grün: Wenn die Ampel gerade auf grün ist, kann sich nach einem Buttonklick nur auf Gelb umschalten.

Schwieriger ist es, wenn die Ampel auf Gelb steht. Denn du weißt ja nicht, ob die Ampel gerade "von oben" (rot) oder "von unten" (grün) kommt.

Deshalb musst du dir, die vorherige Farbe immer in einer Variablen speichern.


//Speichert die vorherige Farbe
//Muss außerhalb von ampelÄndern_Click deklariert werden, damit der Wert auch außerhalb der Methode gespeichert wird
Color vorherigeFarbe;
private void ampelÄndern_Click(object sender, EventArgs e)
        {

            //erstmal die zwei leichten Fälle: 
            if (rot.BackColor == Color.Red)
            {
                rot.BackColor = Color.White; // Rot ausschalten
                vorherigeFarbe = Color.Red; // Die vorherige Ampelfarbe war Rot
                gelb.BackColor = Color.Yellow; //Gelb anschalten
            }
            else if(grün.BackColor == Color.Green)
            {
                gruen.BackColor = Color.White; // Grün ausschalten
                gelb.BackColor = Color.Yellow; // Gelb anschalten
                vorherigeFarbe = Color.Green; // Die vorherige Ampelfarbe war Rot
            }

            // So, jetzt das schwierigere
            else if (gelb.BackColor == Color.Yellow)
            {
                gelb.BackColor = Color.White; // auf jedenfall erstmal gelb ausschalten
               //jetzt prüfst du, ob die vroherige Ampelfarbe Rot war
                if (vorherigeFarbe == Color.Red)
                {
                    //wenn ja, musst du jetzt natürlich auf grün umschalten
                    gruen.BackColor = Color.Green;
                }
                else
                {
                    //ansonsten natürlich auf rot
                    rot.BackColor = Color.Red;
                }
                vorherigeFarbe = Color.Yellow; //vorherige Farbe war gelb (nicht zwingend notwendig)
            }     
            else
{
          // hierhin solltest du eigentlich nie kommen
} 
      
        }

Schau dir den Code ruhig mal im Debugger an, und versuch den einzelnen Schritten zu folgen und zu verstehen.

knub

17.08.2007 - 14:21 Uhr

Original von MrSparkle

Aber mal noch ne ganz andere Frage: Ab wann hat denn ein Control eigentlich ein Parent?

Im Constructor logischerweise noch nicht, auch nicht im Control.Load Ereignis.

Im Form.Load hat das Control schon ein Parent. Der Parent wird ja in InitializeComponent zugewiesen, also kannst du das direkt nach InitializeComponent im Form-Konstruktor machen.

knub

17.08.2007 - 14:12 Uhr

Hallo,

Control.FindForm();

knub

edit:

FindForm ist intern aber genauso aufgebaut wie deine Methode.


internal Form FindFormInternal()
{
    Control parentInternal = this;
    while ((parentInternal != null) && !(parentInternal is Form))
    {
        parentInternal = parentInternal.ParentInternal;
    }
    return (Form) parentInternal;
}

17.08.2007 - 12:46 Uhr

Hallo,

Thread.Join();

knub

edit: siehe post unter mir

16.08.2007 - 14:24 Uhr

Original von MrSparkle
Ein Event ist im grunde nix anderes, als ein Delegate. Genauer gesagt, ein MulticastDelegate, d.h. man kann mehrere Callback-Funktionen aneinanderhängen (mit dem += Operator).

Events sind ja genau das, was er verstanden hat.
Was er nicht verstanden hat, sind Callbacks, anonyme Delegates etc.

knub

15.08.2007 - 22:58 Uhr

Hallo,

ohne Delegates wären keine Events möglich.
Oder bei Callback-Funktionen.

knub

15.08.2007 - 21:37 Uhr

Hallo,

Original von sunnyandy
Nur mit der SharpZipLib funktioniert es, allerdings möchte ich meine Anwendung kommerziell vertreiben, und kann deswegen nicht auf die Komponente zurück greifen.

Wieso nicht?
http://www.icsharpcode.net/OpenSource/SharpZipLib/

Bottom line In plain English this means you can use this library in commercial closed-source applications.

knub

09.08.2007 - 16:21 Uhr

Original von veasel
@knub
meine Post sind antworten auf deine Posts...
was ist daran so schwer?

Ich rede doch mit CaptainIglo und ich hab keine Fragen, dass sind alles Fragen die CaptainIglo helfen sollen, sein Problem zu lösen.

knub

09.08.2007 - 15:35 Uhr

Hallo,

kannst du bei OwnerDrawText nicht auch mit e.Graphics.FillRectangle() einen Hintergrund zeichnen?

knub

09.08.2007 - 15:16 Uhr

Original von Friedel
Hat knub in seinem zweiten post erwähnt, also nicht "allerdings anders als ihr alle geschrieben habt 😛" 😄

😁 😁 ([konnts mir nicht verkneifen ^^]

09.08.2007 - 15:09 Uhr

Original von CaptainIglo
Bei OwnerDrawText zeichnet er mir aber keine Hintergrundfarben mehr

Bei mir zeichnet er trotzdem Hintergrundfarben?! (siehe Anhang)

Das Selektierte kann ich dann selbst zeichnen, allerdings ist dann eben die gesamte Zeile zu zeichnen...

Dann berechne vorher mit Graphics.MeasureString() wie lang der String ist und zeichne nur soweit den Hintergrund. Oder verstehe ich das falsch?

knub

09.08.2007 - 15:03 Uhr

Hallo,

Meinst du mit Systemmenü das Kontextmenu, indme Wiederherstellen, Verschieben, Größe ändern etc. steht?
Wenn ja, hast du FormBorderStyle auf none gestellt?

knub

09.08.2007 - 14:57 Uhr

Hallo,

soweit ich das überblicken kann, muss die die Einrücktiefe etc. garnicht zeichnen.
Du stellst deinTreeView.DrawMode auf TreeViewDrawMode.OwnerDrawText und musst dich nur noch um den Text kümmern.

Mal ein ganz einfachs Beispiel für DrawItem (hier wird nur der Text gezeichnet, du müsstest das dann natürlich noch so ausbauen, wie du willst):



        private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
        {
            e.Graphics.DrawString(e.Node.Text, treeView1.Font, Brushes.Black, e.Bounds.X,e.Bounds.Y);
        }

knub

edit:

Original von veasel

this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);  

Jop.

09.08.2007 - 14:46 Uhr

Hallo,

DrawNode ist ein Event, und an diesen kannst du deine eigenen Methoden anhängen ("abonnieren"). Mir fällt grad auch kein anderes Wort ein ^^.

knub

edit: Rechtschreibung

09.08.2007 - 14:34 Uhr

Hallo,

Original von veasel
und mit Codebeispiel meine, was du mit abbonieren meinst?

Ich versteh die Frage nicht!? (ist es überhaupt eine).

Original von veasel
dass man zum zeichnen e.Graphics braucht, das weiß ich auch!

Das Posting war ja nicht nur auf dich, sondern vorallem auf CaptainIglo bezogen.

knub

09.08.2007 - 14:25 Uhr

Hallo,

Original von dennisspohr
Ich habs herausgefunden...allerdings anders als ihr alle geschrieben habt 😛

Wäre gut, wenn du deine Lösung posten könntest, falls zukünftig auch andere dieses Problem haben sollten.

Original von dennisspohr
allerdings enthält dieser Pfad 2 Ordner mit Leerzeichen, z.B. "Dokumente und Einstellungen". Wie bekomme ich hin, dass dies als EIN Pfad behandelt wird?

Schreib es in Anführungszeichen (musst du dann dementsprechend im String escapen).

knub

Edit: Synchronposting aller erster Klasse 🙂

09.08.2007 - 14:11 Uhr

Hallo,

[Hinweis] Wie poste ich richtig?
Punkte 4.

Außerdem kenne ich eure genauen Farben und "Bedürfnisse" nicht.
Nur soviel: zum Zeichnen benutzt ihr e.Graphics.

Genaueres in [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox) und im Openbook, besonders Kapitel 22 und eventuell 25.

knub

09.08.2007 - 13:55 Uhr

Hallo,

noch mehr Wie gibts da eigentlich nicht ... ?? Erklär mal genau, was du machen willst.

knub

09.08.2007 - 13:52 Uhr

Hallo,

von wo startest du denn?
In Visual Studio kannst du unter Projekteigenschaften/Debuggen Parameter übergeben.
Ansonsten werden die Parameter einfach immer "hintendran" gehängt:

meineExe.exe parameter1 parameter2 ...

knub

09.08.2007 - 13:48 Uhr

Original von dennisspohr
Hi @ all,

wahrscheinlich ist es total einfach.....wie kann ich eine Anwendung starten und Parameter für sie übergeben?

Willst du **im **Programm auf Parameter **überprüfen **oder **mit **Parametern starten?

Wenn ersteres gilt, dann siehe Friedel, in args sind dann alle Parameter.

knub

09.08.2007 - 13:28 Uhr

Hallo,

du kannst TreeView.DrawNode abonnieren und dann selberzeichnen.

knub

09.08.2007 - 12:35 Uhr

Hallo,

Original von dennisspohr
Wie vereinbare ich "List <T>"? Ich muss auch später noch auf die einzelnen Zeilen zugreifen können...

Inwiefern? Du kannst ganz normal über den Index zugreifen.

knub

08.08.2007 - 21:42 Uhr

Original von herbivore
vielleicht musst du doch DrawMode.OwnerDrawVariable und das ListBox.MeasureItem-Ereignis verwenden

Hallo,

MeasureItem wird doch aufgerufen, wenn ich die Elementhöhe berechnen will, und nicht die Breite.

Hab es aber trotzdem probiert, nur weiß ich nicht, was ich bei MeasureItemEventArgs.**ItemWidth **angeben sollte.
Habe es mit 0, der Breite der ListBox und der Breite des Strings probiert; ein Scrollbalken erscheint jedoch nicht.

knub

08.08.2007 - 21:37 Uhr

Hallo,

hat Verknüpfung (*.lnk) erstellen bei dir nicht funktioniert?

knub

08.08.2007 - 21:02 Uhr

Hallo,

ich habe eine ListBox, bei der ich die einzelnen Items selbst zeichne (ListBox.DrawItem = DrawMode.OwnerDrawFixed).

Im **OnDrawItem **wird dann der Text mittels e.Graphics.DrawString() gezeichnet. Wenn der String allerdings zu lang ist, wird er natürlich rechts abgeschnitten.
Wie erreiche ich trotzdem einen horizontalen Scrollbalken?
ListBox.HorizontalScrollbar = true hilft da auch nichts.

knub

07.08.2007 - 17:25 Uhr

Hallo,

bereits vorhanden:

string extension = System.IO.Path.GetExtension("pfad");

07.08.2007 - 16:24 Uhr

Hallo,

TextBox.SelectionStart

knub

07.08.2007 - 15:19 Uhr

Hallo,

probiers mal mit System.Diagnostics.Stopwatch.

knub

07.08.2007 - 15:18 Uhr

Hallo,

also für 4 Tage Erfahrung find ich das schon beachtlich.

Original von dennisspohr
Könntest ihr euch ihn mal angucken und mir evtl. Fehler bzw. Verbesserungsvorschläge posten?

2 Dinge sind mir bisher aufgefallen:1.Dein Bookmarksystem find ich wenig intuitiv. Wenn ich zum Beispiel den Webbrowser starte und bei den Bookmarks auf dennispohr.de gehe, erwarte ich eigentlich, dass ich auf dennispohr.de lande. Es passiert allerdings garnichts. 1.Mach mal folgendes: Starte den Browser und gib als URL www.google.de ein. Dann wähl bei den Bookmarks www.google.de aus und versuch es zu entfernen. CRASH. IndexOutOfRangeException

knub

27.07.2007 - 22:22 Uhr

Hallo,

für solche Zwecke gibt es die XmlReader-Klasse.

knub

26.07.2007 - 08:25 Uhr

Hallo,

jetzt funktioniert es, danke! Auf so einen Gedanken wäre ich ja nie gekommen ^^.

knub

25.07.2007 - 16:54 Uhr

Unter Win Vista funktionierts bei mir auch.

25.07.2007 - 16:53 Uhr

Hallo,

hat das Bild den gleichen Namen wie das Steuerelement?

knub

25.07.2007 - 12:52 Uhr

Original von xxxprod
//EDIT: Wie hast du die Eigenschaft denn implementiert?

Eigentlich ganz normal:


            get { return this._images; }
            set
            {
               this._images = value;
               if (this._update)
                   this.ShowImages(this._currentTab);
            }

Original von xxxprod
PS: Ich hab einen ähnlichen Fehler bei einer Collection auch schon mal erlebt. Nämlich dann, wenn das Property einen Setter hatte weil Properties für Collections meistens nur einen Getter haben und in der Klasse initialisiert werden.

Hab es jetzt mal ohne Setter probiert --> gleiches Problem.

Danke, knub

25.07.2007 - 11:39 Uhr

Hallo,

leider hab ich, soweit ich das erkennen kann, diese Funktion als C#-Express User nicht.

Allerdings glaub ich auch nicht, dass der Fehler direkt im VisualStudio liegt, sondern eher in meinem Code. Vielleicht will er die Generics nicht, vielleicht fehlt irgendwo ein Attribut (wobei ich kein passendes finde ...) oder irgendetwas anderes ...

Danke, knub

25.07.2007 - 10:43 Uhr

Hallo,

folgendes Problem:
Ich hab ein eigenes, von UserControl abgeleitetes, Steuerelement erstellt, dass eine öffentlich Eigenschaft Images (vom Typ System.Collections.Generic.List<Bitmap>).
Das Steuerelement ist soweit fertig und nun wollte ich noch ein bisschen Funktionalität für den Designer hinzufügen.

Die Eigenschaft Images wird im Designer im Eigenschaftsfenster als Auflistung (ähnlich wie z.B. bei ImageList.Images) angezeigt. Wenn ich allerdings im darauf folgenden Dialog auf hinzufügen klicke, kommt folgende Fehlermeldung:

"Ungültiger Parameter".

Wenn ich dann versuche normal im Designer weiterzuarbeiten (z.B. Größe der Form ändern) kommt folgende Fehlermeldung:

Das Steuerelement MeinSteuerelement hat eine unbehandelte Ausnahme im Designer ausgelöst und wurde deaktiviert.

Ausnahme:
Ungültiger Parameter

Stapelüberwachung:

sowie

"Fehler bei der Codegenerierung für Images-Eigenschaft: Ungültiger Parameter"

Danach hilft immer nur ein Neustart von VS.

Woran liegt das nun?
Das einzige was ich mir vorstellen könnte, ist, dass der Designer nicht mit generischen Klassen "arbeiten will".

Muss ich stattdessen eine eigene Collection für die Bilder schreiben (ähnlich zu ImageList.ImageCollection bei einer ImageList)?

Danke, knub

17.07.2007 - 17:52 Uhr

Hallo,
meinst du


Properties.Settings_Graphanzeige = 1;

?