Laden...
W
webstarg myCSharp.de - Member
München, Deutschland Dabei seit 21.07.2006 558 Beiträge
Benutzerbeschreibung

Forenbeiträge von webstarg Ingesamt 558 Beiträge

01.07.2007 - 18:58 Uhr

Ja, aber wie stelle ich das an?


private override Size DefaultSize
{
set
{
base.DefaultSize = new Size(0, 10),
}
get
{
return base.DefaultSize;
}
}

?

Die Zuweisung darf ich nicht machen, da "DefaultSize schreibgeschützt" sei.

mfg
webstarg

30.06.2007 - 22:50 Uhr

Hallo!

Kann man bei einer eigenen Klasse, die von WinForms erbt, die Property DefaultSize überschreiben (da diese schreibgeschützt ist)? Also eine eigene Size festlegen?

mfg
webstarg

29.06.2007 - 15:03 Uhr

Original von Emilio111
Habe das script unter einer Windows XP - Umgebung getestet und siehe da: es duut!

PS: Das mit Form_DragEnter und Form_DragDrop, das geht und meinObjekt_DragEnter, meinObjekt_DragDrop, das nicht geht habe ich mit Windows XP Home SP2 getestet.

mfg
webstarg

28.06.2007 - 20:37 Uhr

Original von moleman

  
ich wollte das "\n" eigentlich umgehen... irgendwie   
  
Dann ersetze es doch mit Environment.NewLine   :D  
  
grüße  
webstarg
28.06.2007 - 19:07 Uhr

Arrays haben die Eigenschaft Length, die die Array-Länge angibt.

Wie das bei mehrdimensionalen Arrays läuft, weiß ich leider nicht mehr auswendig.

webstarg

28.06.2007 - 18:51 Uhr

_Original von moleman_AllesUeberDateien2.0.pdf habe ich mir angesehen und sowas gebastelt, was mir aber leider alles in eine zeile haut 😦

Hallo moleman,

neue Zeile mit Environment.NewLine

also: sw.Write(integer.ToString() + Environment.NewLine);

mfg
webstarg

28.06.2007 - 15:50 Uhr

Hallo Emilio111,

auch ich hatte vor 3 Tagen dieses Problem.

So wie ich das verstanden habe, "funktioniert" (?) das Event DragEnter und DragDrop nur von der Form. Die anderen der Winforms (also pictureBox, ...) werden (scheinbar) nicht angesprungen.
Das finde ich aber ziemlich merkwürdig, wieso sind dann die Events bei den Winforms enthalten?

Gelöst habe ich mein Problem jedenfalls, indem ich dann diese beiden Form-Events verwendet habe, das DragDrop habe ich aber nur zugelassen, wenn die Koordinaten innerhalb meiner gewünschten Winform-Objektes sind. Auf die DragDrop-Koordinaten kannst du mit e.X und e.Y zugreifen, bei Winform gibt es (in diesem Fall PictureBox) Bottom, Top, Left, Right.
Aufzupassen ist evtl. noch, wenn du eine Menüleiste (MainMenu) verwendet, weil diese dann die Koordinaten der Winforms verschiebt, das X, Y von e aber nicht.

Hoffe konnte helfen
webstarg

27.06.2007 - 21:18 Uhr

_Original von herbivore_mit eine einzelnen fünfseitigen Würfel, kommt man im Schnitt 3 Felder weit, mit einem sechseitigen 3,5 Felder.

Bezogen auf: welche Felder wie oft getroffen werden

Anmerkung: Am Ende des Spielfeldes wird vorne wieder begonnen. (40 Felder / Runde)

Versuche nur herauszufinden, ob mein Ergebnis realistisch ist.

mfg
webstarg

27.06.2007 - 20:58 Uhr

_Original von herbivore_Die Verteilung von zwei Würfeln bekommt man durch rand.Next(1,7) + rand.Next(1,7).

Ist es möglich, dass mit einem 5-zahligen Würfel und einem 6-zahligen Würfel fast kein Unterschied auftritt (welche Felder wie oft getroffen werden). Am Ende des Spielfeldes wird vorne wieder begonnen.

webstarg

27.06.2007 - 20:04 Uhr

Über folgenden Obfuscator bin ich gerade gestoßen:

Salamander .NET Obfuscator
http://www.remotesoft.com/salamander/obfuscator.html

This trial version contains full functionalities, but it is only meant for your internal evaluation purpose, and thus you must not distribute the obfuscated code.

grüße
webstarg

27.06.2007 - 19:36 Uhr

Original von herbivore

Hier muss etwas falsch sein oder?
Falsch würde ich nicht sagen, aber ich würde eher

textBox1.Text = (string)TreeNode.Tag;  

verwenden.

@ herbivore:
Konvertieren und Casten führt doch das gleiche aus, oder? Gibt es da einen Unterschied? 8o

webstarg

27.06.2007 - 17:33 Uhr

Original von herbivore[...] bei einer so kleinen Zahl ist noch kein Zyklus eingetreten [...] 😁

😁 Was wäre eine große Zahl?

Okay, dann belasse ich es bei einem Objekt.

Danke für die vielen Antworten.
webstarg

27.06.2007 - 17:05 Uhr

Also ich habe 600.000.000 verwendet.

webstarg

27.06.2007 - 16:59 Uhr

Danke für die Antworten.

@ herbivore: Damit hast du natürlich Recht. Ich habe das hier nur zur Vereinfachung mit .Next(2, 12) gemacht, in meinem Programm gibt es zwei Randoms, die ich beide mit .Next(1, 6) bzw. 1, 7 (muss ich noch korrigieren) aufrufe.

@ winsharp93: Das wäre ein Idee.

@ b3nJ:

obwohl ich eigentlich gedacht habe, dass der seed, wenn er nicht übergeben wird zufällig generiert wird? wie winSharp93 schon gesagt hat aus der systemzeit.

Ja, das stimmt schon. Nur verändert sich die Systemzeit nicht schnell genug für eine for-Schleife, die nicht viel Inhalt im Rumpf hat.

mfg
webstarg

27.06.2007 - 16:43 Uhr

Original von B3nj
hm, so müsste es doch gehen:

  
return new Random().Next(2,12);  
  

so wird gleich jedes mal neu geseedet.

mfG b3nJ

Nein, das kann ich nicht verwenden, da die Abfragen dauernd (d. h. von einer for-Schleife aus) durchgeführt werden und somit folgendes - womit ich schon einmal ein Problem gehabt habe - passieren: Random

webstarg

27.06.2007 - 16:32 Uhr

_Original von winSharp93_Relativ lang. Eigentlich so gesehen "unendlich". (sie endet ja nie) Wenn aber sich einmal eine Zahl wiederholt (was ja zweifelsfrei irgendwann vorkommen muss), wiederholen sich aber natürlich auch alle folgenden Zahlen.

Ist das für mein Programm dann ein Problem?

Die Zahlen wiederholen sich fast ständig, wenn der Bereich von 2-12 reicht.
Somit könnte ich mit meinem Programm mit 6.000 Zügen das gleiche wie mit 600.000.000 berechnen. Nur mit kürzerer Rechenzeit. ?

Gibt es dafür Abhilfe? (Ich befürchte: nein) (Z. B. zwischenzeitlich neu seeden, ...)

grüße
webstarg

27.06.2007 - 16:21 Uhr

Original von winSharp93
Wenn jemand den Zufallsgenerator genau kennt, kommt es ja außerdem auf dasselbe heraus, ob man nun die nächste Zahl in der Reihe oder die drittnächste verwendet.

Wie meinst du das mit "den Zufallsgenerator kennen"? Den Seed wissen?
Wie lange ist diese Reihe?

Mein Programm simuliert etwa 600.000.000 Würfelzüge. Da könnte das problematisch sein...

eine Zahl zwischen 2 und 11 - der zweite Parameter gibt die exclusive Obergrenze an.

😁 Danke für diese Information. Vielleicht ist das ja ein (Teil-)Grund für recht unrealistische Ergebnisse. Eigentlich nicht vielleicht.

mfg
webstarg

27.06.2007 - 16:15 Uhr

Original von B3nj
wenn du bei dme konstruktor von Random keine Zahl übergibst, dann sind die Zahlen nacher sehr zufällig, bzw. du kriegst es nicht mehr besser hin, wenn du jedoch dem Konstruktor von Random noch eine Zahl übergibst, und diese immer gleich ist, dann würfelt der würfel immer die gleichen zahlen in der gleichen reihenfolge.

mfG b3nJ

Hallo b3nJ,

danke für deine Antwort. Verstanden habe ich sie aber nicht ganz: Den Wert übergebe ich dem Konstruktor (falls ich das mache) ja nur einmal. Beim Instanzieren.
🤔

grüße
webstarg

27.06.2007 - 16:11 Uhr

Hallo oberstift,

als ich meine zweite Antwort geschrieben habe, war deine noch nicht da, deshalb habe ich dann den Quelltext-Ausschnitt geschrieben. 😉

Bezüglich der Methode hast du natürlich Recht. Um mit bool zu vergleichen muss man die Methode IsMatch verwenden. (Ich hatte meinen Ausschnitt nicht getestet.)

mfg
webstarg

27.06.2007 - 16:05 Uhr

Hallo!

Ich habe eine Instanz von Random mit der ich mit der Next Methode Zufallszahlen zwischen 2 und 12 erzeuge.
Erreiche ich da aber gute Würfelergebnisse, wenn ich das mit einem Random-Objekt als Klassenvariable und einer GetWürfelErgebnis-Methode (Inhalt: return myRandom.Next(2, 12)😉 realisiere, oder müsste ich inzwischen ungenutzte Zufallszahlen generieren, da eine Zufallszahl (wie ich das verstanden habe) auf der vorherigen basiert. (Also myRandom.Next(2, 12); myRandom.Next(2, 12); return myRandom.Next(2, 12); um Ergebnisse (relativ) unabhängig vom vorherigen Würfelausgang zu erhalten?)

mfg
webstarg

27.06.2007 - 15:56 Uhr

Hallo!


using System.Text.RegularExpressions;

...

string input = Console.ReadLine();
Regex hexRegex = new Regex("^[a-z]{2}$");
if (hexRegex.Match(input))
{
//Hex
}
else
{
//Kein Hex
}

So etwas hätte man aber auch mit der Suchfunktion finden können.

grüße
webstarg

27.06.2007 - 15:29 Uhr

Hallo oberstift,

Regex wäre da eine Lösung.

Namespace: System.Text.RegularExpressions;

Pattern: ^[A-Fa-f0-9]{6}$

Viele gute Links und Informationen zu Regex findest du auch im Artikel in der Wikipedia.

mfg
webstarg

26.06.2007 - 17:21 Uhr

Hallo juetho,

versuche es mal mit dem ResourceManager. Siehe
Datei aus resource (Beitrag von Friedel)

mfg
webstarg

25.06.2007 - 17:58 Uhr

Hallo winSharp93,

ich glaube, das i++ in deinem Quelltext ist zu viel, da du ja im Kopf der for-Schleife i um 3 erhöhst.

grüße
webstarg

22.06.2007 - 16:40 Uhr

Hallo!

Für die Schule habe ich auch mal eine Binäruhr programmiert:

(PS: Screenshot kann ich zurzeit nicht anbieten, da ich gerade an einem PC ohne .NET sitze.)

mfg
webstarg

Hier ist meine Binäruhr:

17.06.2007 - 18:04 Uhr

Hallo kolli,

Int64 ist das gleiche wie der Datentyp long.

Instanzierung:
long meineZahl = 600;

Konvertierung zu long:
long meineZahl = Convert.ToInt64("200000000");

Als Suffix für long kann L verwendet werden.

mfg
webstarg

16.06.2007 - 11:37 Uhr

Hallo,

trotz Suche im Web, habe ich den Unterschied zwischen diesen beiden Klassen noch nicht verstanden: ResourceManager (aus dem Namespace System.Resources) und ComponentResourceManager (aus dem Namespace System.ComponentModel)

Der ComponentResourceManager wird vom Designer verwendet.

Führen beide Klassen die gleiche Aufgabe aus?
Welche Klasse ist zu empfehlen?

mfg
webstarg

15.06.2007 - 15:53 Uhr

Original von ldr
Er meint wohl den Unterschied zwischen ENTER (neuer Absatz) und SHIFT+ENTER (neue Zeile) in Word.

Ja, genau.

Wenn ich aber eine Multi-Line-TextBox habe, dann unterscheidet diese wohl in Enter und Enter+Großschreibung, oder?

Ist \r\n == \n?

grüße
webstarg

14.06.2007 - 19:25 Uhr

Hallo!

Gibt es ein Escape-Zeichen für einen Zeilenumbruch (= Großschreibtaste + Enter)?

danke
webstarg

06.06.2007 - 11:58 Uhr

Danke für die Antwort.

MinimumSize wieder aufheben wäre demnach:

this.MinimumSize = new Size(0, 0);

webstarg

05.06.2007 - 21:20 Uhr

Hallo!

Nach Google, MSDN habe ich auf folgendes immer noch keine Lösung:

Kann man MinimumSize für ein Steuerelement auch nur einseitig (d.h. nur Height oder Width) festlegen? Wenn nein, was ist der größte mögliche Wert für die Eigenschaft, die nicht beschränkt sein sollte, bzw. kann man unendlich angeben? Wie kann man MinimumSize wieder aufheben?

danke im voraus
webstarg

05.06.2007 - 20:38 Uhr

Funktioniert jetzt endlich.

Danke für die Antworten.
webstarg

04.06.2007 - 18:25 Uhr

Labels und andere Windows-Forms der Klassenbibliotheken scheinen das aber zu benutzen (Label, Buttons, ...). So ist Font bei einem frisch erstellten Label zum Beispiel nicht fett (im Eigenschaftenfenster in der IDE, wo ein fettgeschriebener Wert bedeutet, dass der Wert != DefaultValue, ein normalgeschriebener Wert == DefaultValue ist).

P.S: Mit Color habe ich das gleiche Problem.

webstarg

04.06.2007 - 18:01 Uhr

Jetzt bin ich soweit gekommen, dass folgende Fehlermeldung kommt, wenn ich vor einem Font-Setter-Getter "[DefaultValue(new Font("Tahoma", 12))]" schreibe:

Ein Attributargument muss ein constant-, typeof- oder Arrayerstellungsausdruck sein. (CS0182)

Zu dieser Fehlermeldung findet man jedoch nichts nützliches. (Artikel nur in der englischen MSDN, es wird erklärt, wann der Fehler kommt, Abhilfe wird aber nicht aufgezeigt; Google findet auch nichts sinnvolles)

  • Constant fällt man weg.
  • Arrayerstellungsausdruck?? das wäre es ja wenn ich new ... schreibe oder
  • typeOf ?

hoffe, ihr könnt mir helfen
webstarg

04.06.2007 - 17:48 Uhr

Original von langalaxy

ResourceManager rs = new ResourceManager("Standardnamespace.Resourcenordner.Resourcendatei", Assembly.GetExecutingAssembly());  

Hallo!

Und wie gehe ich vor, wenn ich die Resourcen-Datei manuell (über Projekt/Hinzufügen/Neue Datei... "Leere Resourcen-Datei") mache? Was ist dann mein Standardnamespace und was der Resourcenordner?

mfg
webstarg

03.06.2007 - 15:56 Uhr

Hallo!

Ich stehe vor folgendem Problem:
Ich möchte den DefaultValue einer Eigenschaft festlegen, die vom Typ Size, Point, Font, ... ist. Diese Typen kann man jedoch nicht const erstellen und deshalb kann ich das im DefaultValue nicht angeben. Wie gebe ich dann den Standardwert an?

danke im voraus
webstarg

02.06.2007 - 18:30 Uhr

Original von Borg
Wenn du aber die gleiche TreeView in zwei Forms anzeigen willst, wäre es dann nicht besser die Oberfläche in zwei Teile zu teilen? Links der TreeView und rechts entweder TabPages oder Panels, die du je nach Bedarf ein- und ausblendest?

Das könnte ich auch machen...

Dann versuche ich das jetzt.

danke
webstarg

01.06.2007 - 18:10 Uhr

Hallo!

Ich habe folgende Frage: Werden WinForms bzw. UserControls immer als Referenzen übergeben? Und wie kann man sie als Value übergeben?

Ich habe eine MainForm, in der es einen TreeView gibt. Per Button-Klick wird Form1 geöffnet, dort sollte auch dieses TreeView sein.
Nun würde ich das dem Konstruktor übergeben, doch sobald ich das mache, verschwindet das Objekt in der MainForm.

Wie kann ich dieses Problem lösen?

danke
webstarg

27.05.2007 - 18:56 Uhr

Ich habe schon vor dem Posten andere Werte genommen.

z. B. 100.0/0.0254
und andere

Laut Openbook gibt man den Betrag zur Einheit 1/100 Zoll an.

mfg
webstarg

26.05.2007 - 22:17 Uhr

Hallo!

Beim folgenden Quelltextausschnitt erfolgt der Ausdruck gleich, wie wenn ich nichts eingestellt hätte. Links oben, ca. 0,5 cm von den Rändern entfernt. Wieso funktioniert das nicht? Die Zuweisung erfolgt (habe ich mit dem Debugger kontrolliert), die Seitenränder-Einstellung habe ich aus dem Galileo-Openbook.


public void DruckStarten()
		{
			PrintDocument doc = new PrintDocument();
			doc.DefaultPageSettings.Margins.Top = (int) (2.0/0.0254);
			doc.DefaultPageSettings.Margins.Left = (int) (2.0/0.0254);
			doc.DocumentName = "Mein Druck";
			doc.PrintPage += new PrintPageEventHandler(this.Printing);
			doc.Print();
		}

Das Printpage-Event zeichnet dann mit DrawLines und DrawString, ...

danke im Voraus
webstarg

10.05.2007 - 19:38 Uhr

Hallo Jamey!

Wenn nicht nur die Leerzeichen zu Beginn und am Ende eines Strings gelöscht werden sollen, so empfiehlt sich String.Replace(" ", "");

mfg
webstarg

07.05.2007 - 14:26 Uhr

Danke für die vielen Antworten.
Ich werde dann mal schauen was ich mache.

webstarg

06.05.2007 - 20:36 Uhr

Hallo!

Könntest du bitte auch noch kurz erklären, wie man dem Objekt ein Icon zuweist?

Dankeschön.

mfg
webstarg

06.05.2007 - 20:30 Uhr

Aber ich könnte die Properties mit einer private überschreiben, oder?

webstarg

06.05.2007 - 14:09 Uhr

Aha.

danke für die Antwort
webstarg

06.05.2007 - 13:25 Uhr

Hallo!

Wie kann man Properties von vererbten Klassen für Benutzer dieser Klasse unsichtbar machen? Also wenn ich eine Klasse habe, die von ComboBox erbt und ich möchte, dass der Benutzer dieser Klasse Items nicht sieht.

danke im voraus
webstarg

05.05.2007 - 19:45 Uhr

Hallo Quallo!

Nettes Codebeispiel. Ich habe es noch etwas aufgebohrt, sodass z. B. wenn alle Children Checked = true sind, Parent auch true wird.


void treeView1AfterCheck(object sender, TreeViewEventArgs e)
{
    if(e.Action != TreeViewAction.Unknown)
    {
        CheckTreeNodeChildren(e.Node);
        CheckTreeNodeParents(e.Node);
    }
}

void CheckTreeNodeChildren(TreeNode CheckNode)
{
    foreach(TreeNode CurrNode in CheckNode.Nodes)
    {
    	//Children übernehmen Status von Parent
        CurrNode.Checked = CheckNode.Checked;
        //Children von Parent.Children übernimmt Status
        CheckTreeNodeChildren(CurrNode);
    }
}

void CheckTreeNodeParents(TreeNode CheckNode)
{
    if(CheckNode.Parent != null)
    {
    	bool checkState = CheckNode.Checked;
    	
    	foreach (TreeNode TN in CheckNode.Parent.Nodes)
    	{
    		if (! TN.Checked)
    		{
    			checkState = false;
    		}
    	}
    	
    	if (CheckNode.Checked == checkState)
    	{
    		//Alle Children haben den gleichen Status
        	CheckNode.Parent.Checked = checkState;
    	}
    	if (checkState)
    	{
    	    //Parent ist Checked, Children übernehmen den Status
            foreach (TreeNode TN in CheckNode.Parent.Nodes)
            {
            	CheckTreeNodeChildren(TN);
            }
    	}
    	
    	//Parent von Parent macht die gleiche Prüfung durch
        CheckTreeNodeParents(CheckNode.Parent);
    }
}

mfg
webstarg

05.05.2007 - 10:22 Uhr

Vielen Dank.
webstarg

05.05.2007 - 10:03 Uhr

Hallo!

Wie kann man z. B. mit Focus() eine comboBox anspringen, wenn eine textBox vorhanden ist?
Focus() springt immer nur textBoxen an, wenn vorhanden.
Wie kann ich dann aber eine comboBox anspringen?

mfg
webstarg

03.05.2007 - 20:19 Uhr

Hallo norman_timo,

auch ich finde es schade, dass du vor hast, das Forum zu verlassen.

Weiterhin alles Gute.
webstarg