Danke für die Tipps!
Das funktioniert leider nich:
public class Feld
{
private ref bool m_loesenPressed;
Also bleibt mir wohl nur eine eigene bool Klasse!
Oder hat noch jemand ne andere Idee wie man das Problem lösen kann?
gruß Muphin
Ich hab eine übergeordnete Klasse die einen bool Member m_loesenPressed und ein Member Array aus einer anderen Klasse "Feld" hat. Im Konstruktor der übergeordneten Klasse wird dann das Array der Felder initialisiert und ich übergebe den bool Member als ref, damit bei einer änderung des bools in einem der Felder ich die Änderung auch in der übergeordneten Klasse mitbekomme. Allerdings funktioniert das nicht, der bool wird für jedes Feld getrennt behandelt und es läuft nicht so wie ich mir das gedacht hab, das es also praktisch nur ein einziges m_loesenPressed gibt und sobald sich das irgendwo ändert ich das auch an allen anderen Stellen mitbekomme. Es ist also eher so als würde ich den bool by value übergeben.
Edit:
Ich hab daneben noch eine eigene Klasse Colors von der ich eine Instanz genauso benutze, damit ich in den einzelnen Feldern und in der übergeordneten Klasse die selben Farbe zur Hand hab und mit der funktioniert das wunderbar.
public class1
{
...
private Feld[,] m_fields;
private bool m_loesenPressed;
private Colors m_colors;
...
public class1
{
...
for( int i = 0; i < 9; i++ )
{
for( int j = 0; j < 9; j++ )
{
m_fields[i, j] = new Feld( ref m_colors, ref m_loesenPressed );
}
}
...
}
...
public class Feld
{
...
private bool m_loesenPressed;
private Colors m_colors;
...
public Feld( ref bool t_loesenPressed )
{
...
m_loesenPressed = t_loesenPressed;
m_colors = t_colors;
...
}
...
private void hauptfeld_TextChanged( object sender, System.EventArgs e )
{
m_loesenPressed = false;
}
}
Die Farbe lass ich lieber auf Control, spricht mich irgendwie eher an wie das ganze als Info einzufärben!
ControlBox auf false is ne gute Idee, danke, so hab ich schon nich n Problem irgendwie das schließen als drücken der Abbrechen Taste zu interpretieren!
Ein FixedDialog isses schon 😉
Die VS2005ImageLibrary hab ich leider nich, wahrscheinlich wegen der Express Version!
Für das Hintergrundfarbenproblem und das Icon hab ich inzwischen auch eine etwas andere Problemlösung gefunden! Und zwar unterstützt das png Format mehrstufige Transparenz. Ich hab also einen Screenshot im Adobe ImageReady etwas überarbeitet und hab nun das Icon das sich schön an den Hintergrund anpasst!
Das wär dann doch noch ein guter Start ins Wochenende 🙂
Gruß Muphin
@Andreas.May
Dankeschön, das klappt richtig gut!
public partial class bittewarten : Form
{
Thread m_loeseThread;
XForm m_main;
public bittewarten( XForm t_main )
{
InitializeComponent();
m_main = t_main;
m_loeseThread = new Thread( new ThreadStart( start ) );
}
private void start()
{
m_main.loese();
this.Close();
}
private void cancel_Click( object sender, EventArgs e )
{
m_loeseThread.Abort();
this.Close();
}
public new void Close()
{
if( this.InvokeRequired ) this.Invoke( new MethodInvoker( this.Close ) );
else base.Close();
}
public new void ShowDialog()
{
m_loeseThread.Start();
base.ShowDialog();
}
}
Ich würde nur am liebsten noch in dem Control das MessageBoxIcon.Exclamation anzeigen! Die einzigste Idee die ich bisher dazu hatte war einen Screenshot davon zu machen und diesen dann in eine PictureBox zu packen, das blöde daran ist nur das wenn jemand eine andere Hintergrundfarbe für die Dialogfelder gewählt hat um das Ausrufezeichen eben die Farbe von meinem Screenshot gezeigt wird und nicht die eingestellte Hintergrundfarbe! Gibts ne möglichkeit die picture Box so anzupassen dass nur das gelbe dreieck genau reinpasst oder das Icon direkt anzuzeigen?
Gruß Muphin
In meinem Fall wird doch die Message Box vom GUI-Thread angezeigt, oder hab ich da jetzt was falsch verstanden?
Dann wär in meinem Fall wohl das Beste ich bastel mir sozusagen eine eigene MessageBox die nur den Abbrechen Button enthält und die ich dann am Ende des gestarteten Threads schließe! Ich hatte nur gehofft dass das ganze etwas einfacher is!
Gibts vielleicht eine andere möglichkeit das Control zu sperren solange der Thread ausgeführt wird?
Gruß Muphin
Guten Tag!
Ich möchte beim ausführen eines Threads eine "Bitte warten!" Message Box anzeigen, damit auf dem eigentlichen Control z.B. keine Tasten mehr gedrückt werden können! Sobald der Thread nun fertig ist mit seiner Aufgabe soll die MessageBox wieder geschlossen werden. Außerdem soll beim drücken des Abbrechen Buttons der Thread abgebrochen werden.
Bisher sieht mein Code dazu so aus:
private void btn_komplettLoesen_Click( object sender, System.EventArgs e )
{
Thread a_loeseThread = new Thread( new ThreadStart( loese ) );
a_loeseThread.Start();
DialogResult a_result = MessageBox.Show( "Bitte warten!", "löse", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1 );
if( a_result == DialogResult.Cancel )
{
a_loeseThread.Abort();
}
}
Leider konnte ich keine möglichkeit finden nur einen Abort-Button anzeigen zu lassen, außerdem weiß ich nicht wie ich es anstellen soll das die MessageBox wieder verschwindet wenn der Thread fertig bearbeitet ist. Ich hoffe auf eure Hilfe!
Gruß Muphin
vielen dank, habs so umgesetzt!
private delegate string stringDelegate();
...
public string t_hauptfeld_text
{
get
{
if( m_hauptfeld.InvokeRequired )
{
return (string)m_hauptfeld.Invoke( new stringDelegate( delegate { return m_hauptfeld.Text; } ) );
}
else
{
return m_hauptfeld.Text;
}
}
set
{
stopwatch.Start();
if( m_hauptfeld.InvokeRequired )
{
m_hauptfeld.Invoke( new MethodInvoker( delegate { m_hauptfeld.Text = value; } ) );
}
else
{
m_hauptfeld.Text = value;
}
stopwatch.Stop();
float ms = 1000 * stopwatch.ElapsedTicks / (float)System.Diagnostics.Stopwatch.Frequency;
writer.WriteLine( ms.ToString() );
}
}
okay, danke, das klingt absolut logisch!
Nur wenn ich jetzt sozusagen die übergeordnete Methode mit invoke aufrufe wird ja wiederum dieser ganze code im ursprünglichen Thread aufgerufen womit bei mir wiederum das problem mit dem control aktualisieren auftritt!
D.h. mir bleibt wohl nichts anderes übrig wie einen geeigneten zwischenweg zu finden!?
Gruß Muphin
eigentlich nicht, da ich zumindest jetzt beim testen nur durch einen Button Click eine Methode aufgerufen hab die eben jetzt in einem eigenen Thread laufen soll! Sonst passiert nichts weiter! Ich will halt dass das Control immer aktuell bleibt, deshalb setze ich den Thread ein!
private void btn_komplettLoesen_Click(object sender, System.EventArgs e)
{
if (m_neueZahlen)
{
setzeOriginalArray();
m_neueZahlen = false;
}
else
{
setzeZahlenArray();
}
Thread a_loeseThread = new Thread( new ThreadStart( loese ) );
a_loeseThread.Start();
//loese();
}
Nachdem ich bei mir einen 2. thread eingebaut habe braucht das Proggi für die selbe Aufgabe plötzlich ca. 3 mal solang!
Was ich bisher mithilfe der Stopwatch rausfinden konnte war das der aufruf hier:
public string t_hauptfeld_text
{
...
set
{
if( m_hauptfeld.InvokeRequired )
{
m_hauptfeld.Invoke( new setDelegate( delegate { m_hauptfeld.Text = value; } ) );
}
else
{
m_hauptfeld.Text = value;
}
}
}
auch mehrmals solang braucht wenn ein extra Thread benutzt wird wie wenn alles in einem Thread läuft!
Auch mit der folgenden Lösung hab ich dasselbe Problem:
private delegate void setStringDelegate( string t_string );
private setStringDelegate sStrDel;
sStrDel = new setStringDelegate( delegate( string t_string ) { m_hauptfeld.Text = t_string; } );
public string t_hauptfeld_text
{
...
set
{
if( m_hauptfeld.InvokeRequired )
{
m_hauptfeld.Invoke( sStrDel, value );
}
else
{
m_hauptfeld.Text = value;
}
}
}
Wisst ihr alternative oderr habt ihr sonst Ideen wie ich das ganze beschleunigen kann?
Gruß Muphin
eine Lösung wäre z.B. delegates zu benutzen!
mfg Muphin
Wenn ich das richtig durschaue müsste ein Timer reichen, du musst nur im Timer.Tick für alle gedrückten Tasten die richtige Aktion durchführen!
Gruß Muphin
Ich bin gerade auch dabei das erste mal etwas mit Threads zu machen, nachdem ich mich jetzt gestern und heute ein paar Stundenlang damit beschäftigt hab hier im Forum und auf anderen Seiten in das Thema einzulesen hab ich mich jetzt rangetraut damit loszulegen nur bin ich mir gerade nicht sicher mit einer Threadsicheren get / set Methode, bisher sieht sie so aus:
public string t_hauptfeld_text
{
get
{
if( m_hauptfeld.InvokeRequired )
{
return (string)m_hauptfeld.Invoke( new XXX ( delegate { return m_hauptfeld.Text; } ) );
}
else
{
return m_hauptfeld.Text;
}
}
set
{
if( m_hauptfeld.InvokeRequired )
{
m_hauptfeld.Invoke( new XXX ( delegate{ m_hauptfeld.Text = value; } ) );
}
else
{
m_hauptfeld.Text = value;
}
}
}
Für die XXX weiß ich nicht sicher was ich implementieren muss, wäre das beste ein
delegate string stringDelegate()? Oder gibts noch andere Lösungen? Oder passt bei dem ganzen sowieso was überhaupt nich?
Gruß Muphin
danke für den Tipp, aber genau das wollte ich vermeiden!
Ich hatte das Prog vorher mit .Net 1.1 programmiert und dort musste ich die einzelnen clicked Events der Items nehmen! Mit dem ItemClicked Event des MenuStrip lässt sich das ganze aber schöne umsetzen!
Gruß Muphin
Guten morgen!
Ist es möglich eine get/set Methode für Event Handler zu schreiben?
Also sowas in die richtung:
public MouseEventHandler t_merkfeld_MouseMove
{
get
{
return m_merkfeld.MouseMove;
}
set
{
m_merkfeld.MouseMove += value;
}
}
(Das Beispiel funktioniert natürlich so nicht!)
Gruß Muphin
Du meinst so oder?
if( e.ClickedItem == this.markiertToolStripMenuItemFelder )
(Ich glaub ich hab mich ziemlich blöd angestellt was das anbelangt X( )
Also mir ist jetzt noch eingefallen es über den Namen zu machen also
e.ClickedItem.Name == "..."
aber das kommt ja fast aufs gleiche raus!
Ich könnte es auch noch mit deb contextMenuStripFelder.Items vergleichen, aber dort das bestimmte herauszusuchen ginge soweit ich es bisher herausgefunden habe auch nur über den Namen!
Gibt es sonst noch möglichkeiten?
Gruß Muphin
Sorry, ich hab da heut mittag ja mal mächtig was verpeilt, die SourceControl vom sender is schließlich die TextBox, steht sogar so in dem von mir geposteten code-schnippsel!
Aber der sender ist doch nicht das Item, sondern das ContextMenuStrip und mit e.ClickedItem bekomm ich dann das Item das geklickt wurde! Wobei das ja auch nich mein Problem is, sondern das ich ne etwas intelligentere Methode wollt um zu überprüfen ob genau dieses eine bestimmte Item geklickt wurde oder ein anderes! Ich finds eben nicht so schön das über den Text zu machen der in dem Item steht!
Es geht hier ja um das ItemClicked Event des ContextMenuStrip und nicht um das Click Event des MenuItem!
Hatte gedacht das Code-Beispiel wär dafür gut genug!
Gruß Muphin
Ja, aber dann muss ich eben noch überprüfen ob es ein ganz bestimmtes Item ist und da liegt ja das Problem!
Das ClickedItem kann ja ein ganz beliebieges des ContextMenus sein, aber nur wenn es ein ganz bestimmtest ist soll eben der Code ausgeführt werden und sonst eben ein anderer Code!
private void contextMenuStripFelder_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
TextBox a_txtBox = (TextBox)((ContextMenuStrip)sender).SourceControl;
if (e.ClickedItem.Text == "markiert")
{...
}
else(...)
.
.
.
}
Mit dem sender krieg ich ja das Object indem das Context Menu geöffnet wurde, in meinem Fall ist das ne TextBox, wüsste jetzt nich wie mir das helfen soll auf das entsprechende Item des Context Menus zu kommen!?
Guten Tag!
Ich hab ein contextMenuStrip und möchte im ItemClicked Event überprüfen ob ein bestimmtes Item geklickt wurde. Ich bin bisher nur auf die Idee gekommen auf den Text des Items zu prüfen also z.B. so:
e.ClickedItem.Text == "markiert"
Ich denke aber das es da doch bestimmt eine bessere Lösung geben muss!
Wär super wenn ihr mir ein paar entsprechende denkanstöße habt!
Gruß Muphin
Guten morgen!
Kann ich herausfinden an welche Stelle die IEnumerator Instanz zeigt? Es handelt sich dabei um eine Array List, falls das von bedeutung sein sollte!
mfg Muphin
Ich wüsste jetzt nich wie ich das machen soll!
Dafür bräuchte ich ja eine Tiefe Kopie der IEnumerator instanz, ich konnte bisher aber keine möglichkeit finden so etwas zu erstellen!
So sieht der Funktionsaufruf aus:
IEnumerator Iterator = this.ChartDescription.Columns.GetEnumerator();
while( Iterator.MoveNext() )
{
currentColumn = (ChartColumn)Iterator.Current;
....
calculateIntersection( e, Iterator, columnCurrentOffset, columnWidth );
....
}
Guten Tach!
Ich hab eine Funktion geschrieben der als Parameter ein IEnumerator übergeben werden muss. Ich musste jetzt nur leider feststellen dass beim Funktionsaufruf keine kopie von der IEnumerator instanz erstellt wird, so dass nachdem die Funktion durchgelaufen ist, in der Funktion aus der ich die andere Funktion aufgerufen habe nachher die IEnumerator instanz an der falschen stelle steht.
Habt ihr da einen Lösungsvorschlag für mich?
gruß Muphin
Also die Eingabe der IP und des Ports im Browser hab ich vorhin schon ausprobiert gehabt, das Ergebnis ist bei mir nur nicht so toll, liegt wahrscheinlich daran dass der WebService ins C++ mithife von gSoap geschrieben ist!
Mit dieser XML-Datei sind anscheinend keine Style-Informationen verknüpft. Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<SOAP-ENV:Fault SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>HTTP GET method not implemented</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Der Web Service läuft auf einem anderen PC neben mir und ich hab mir die gesendeten Daten dort abspeichern lassen, und das entspricht schon dem was ich erwarte, nur scheint eben dann entweder bei der übertragung oder beim deserialisieren was schief zu laufen!
Leider kenn ich mich damit noch nich so gut aus dass ich die Funktionen jetzt kurz mal von einem Browser aus aufrufen könnte! Ich hab die Web Service anfragen bisher immer nur direkt im Visual Studio programmiert!
Wenn das kein großes ding ist kannst du mir das kuz erläutern oder hast nen Link wo sowas beschrieben ist?
Ansonsten such ich wohl eher nach was wie ich die Empfangenen Daten direkt abspeicher, im C++ geht das ja schließlich auch!
mfg Muphin
Guten Tag!
Ich hab ein kleines Problem mit meinem Client zu einem Web Service, die Funktionen die ich mit dem Client aufrufe werden zwar am Server ausgeführt, doch die Daten am Client enthalten dann immer ein null. Deshalb möchte ich mir gerne das was der Client empfängt als XML Message abspeichern, kann mir jemand sagen wie das geht?
mfg Muphin
Villeicht stimmts ja wirklich:
http://www.metacafe.com/watch/377244/free_converter_any_media_to_any_format_inc_flash/
Vielen Dank!
Hab das vorhin bei msdn gesucht aber einfach nich gefunden!
Hallö!
Kennt jemand von euch eine Site wo man Visual C# 2005 Express oder/und Visual C++ 2005 Express direkt runterladen kann?
Bei dem File das ich auf der MSDN Seite gefunden habe werden die Dateien ja nur beim installieren runtergeladen!
mfg Muphin
Also ich hab im .Net 2.0 ein Diagramm programmiert indem es auch horizontale und vertikale Linien gibt die mit der Maus verschoben werden können, ist eigentlich gar nich so schwer! Also falls du da noch irgendwo hängst kann ich gern ein paar Zeilen Code hier reinklatschen! Zur info vorweg, ich hab mir für jede Linie in einem PointF[] 3 Punkte gemerkte und dann muss man nur noch die x oder y Koordinate der Linie und die x oder y Koordinate der Maus ( je nachdem um was für eine Linie es sich dreht ) vergleichen!
Mfg Muphin
ich weiß jetzt leider nicht wie du die Daten im ListView anordnen willst, aber du könntest auch mit einem XMLReader das file vom Anfang an in vorwärtsrichtung auslesen und die einzelnen Elemente dann immer im ListView anzeigen.
So wie ich das bisher hier mitbekommen habe hat der Reader ne bessere performance, da er das xml File nur in vorwärtsrichtung auslesen kann!
mfg Muphin
Also im normalfall sind solche Sockel gelötet, aber es kann gut sein dass es dir nichts bringt da einfach sockel reinzulöten denn wenn die anderen Hardwarekomponenten nicht dafür ausgelegt sind mehr als 2 Ram-riegel anzusprechen wird das ganze nicht funktionieren!
Bevor ich sowas anfange würde würde ich mir lieber ein neues Motherboard kaufen!
Entweder man will mehr Saft in der Kiste und dann muss man halt auch was investieren, oder man muss damit leben wie es ist!
MFG Muphin
Hat keiner noch ne Idee?
XPath hat mich da auch nicht weitergebracht!
Hätte vielleicht ein Beispiel reinschreiben sollen, in dem XML File steht z.B.: <value>46,932</value>
@kleines_eichhoernchen
Dankeschön!
Allerdings hatte ich mir gedacht dass es vielleicht praktischer wäre das gleich mit dem Reader machen zu können, zwecks übersichtlichkeit und Performance! Weiß jemand da ne möglichkeit?
mfg Muphin
Ich würde gerne mit dem XMLReader ein paar Werte von Elementen einlesen, die Werte sollten eigentlich double Werte sein, aber mit der ReadElementContentAsDouble() Methode ist es nich möglich die Werte einzulesen, da die Werte mit kommas getrennt gespeichert sind!
Wisst ihr eine gute möglichkeit das Problem zu lösen?
MFG Muphin
Oha, ich merk gerade dass ich da bei der Fragestellung wohl irgendwie was verpeilt hab, da fehlt irgendwie was!
Ich muss von einem var Element mit einer bestimmten Id den Wert auslesen!
Also z.B. bei <var id="21"> wäre das 10! Somit nichts entfernen, eher danach suchen!
XPath werd ich mir gleich mal anschauen!
gruß Muphin
guten Tag allerseits!
Ich würde gerne in einem XML File nur Elemente die in ihrem Attribut einen bestimmten Wert stehen haben!
Z.B. aus folgendem XML file alle Elemente die "var" heißen und die id="21" haben!
<values>
<timestep>
<time>1</time>
<var id="11">17,96</var>
<var id="21">10</var>
<var id="31">1</var>
<var id="41">200,8</var>
<var id="51">50,05</var>
</timestep>
<timestep>
<time>2</time>
<var id="41">201,46</var>
</timestep>
<timestep>
.
.
.
Mit dem XmlReader könnte ich jetzt über jedes Element mit dem Namen "var" gehen und überprüfen ob das Attribut "21" ist, was allerdings viel zu zeitraubend wäre!
Gibt es da was schneller z.B. dass ich einfach jedes Element mit dem bestimmten Attribut direkt anwählen kann, so wie als würde ich einen ganz bestimmten Namen suchen?
MFG Muphin
Da kann ich hebivore einfach nur zustimmen!
Ich finde den umgangston hier super, auch wenn einem mal ausversehen was falsches "rausrutscht"!
mfg Muphin
Ja, klar unter der Woche is bei mir auch nich so viel mit Freunden treffen!
Aber wenn man sich wie du sagst über Teamspeak oder von mir aus auch über Chat o.ä. unterhält is das doch auch schon mal was anderes wie wenn man allein vor dem TV hängt oder eben auch alleine was spielt!
@frisch
Ich frage mich jetzt eher was dein Kollege da sonst macht!
Ich persönlich habe früher mehr PC gespielt wie jetzt, da ich eher finde dass es zeitverschwendung ist allein daheim rumzusitzen! Es ist doch viel schöner wenn man etwas mit anderen Menschen zusammen macht!
Ich hab durch viel rumprobieren jetzt eine Lösung gefunden, falls jemand noch eine schickere bzw. bessere kennt bitte ich um Meldung!
while( !xmlReader.EOF )
{
xmlReader.ReadToFollowing( "name" );
string name = xmlReader.ReadElementContentAsString();
xmlReader.ReadToFollowing( "unit" );
string unit = xmlReader.ReadElementContentAsString();
xmlReader.ReadToFollowing( "nameID" );
int nameID = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "unitID" );
int unitID = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "minValue" );
int minValue = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "maxValue" );
int maxValue = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToNextSibling( "variable" );
if( !xmlReader.ReadToNextSibling( "variable" ) )
{
break;
}
}
Ich hab das ganze jetzt soweit mal hinbekommen dass er mir die Sachen einließt, ich weiß grad nur nich ganz wie ich das in eine schleife basteln soll, so dass er mir das beliebig lange macht bis eben keine weitere variable mehr in dem File drinsteht!
Meine anfängliche Idee war das mit EOF zu überprüfen, aber ganz so einfach funktioniert das halt leider nich!
XmlReader xmlReader = XmlReader.Create( m_fileName );
xmlReader.MoveToContent();
while( !xmlReader.EOF )
{
xmlReader.ReadToFollowing( "name" );
string name = xmlReader.ReadElementContentAsString();
xmlReader.ReadToFollowing( "unit" );
string unit = xmlReader.ReadElementContentAsString();
xmlReader.ReadToFollowing( "nameID" );
int nameID = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "unitID" );
int unitID = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "minValue" );
int minValue = xmlReader.ReadElementContentAsInt();
xmlReader.ReadToFollowing( "maxValue" );
int maxValue = xmlReader.ReadElementContentAsInt();
}
Soweit so gut, nur da das XML File aus mehreren variablen besteht weiß ich jetzt nich so recht wie ich an die einzelne variable rankomme, ist da der XMLTextReader vielleicht besser geeignet?
<variablen>
<variable>
<name>FrequenzXML</name>
<unitName>kHz</unitName>
<nameID>11</nameID>
<unitID>12</unitID>
<minValue>15</minValue>
<maxValue>20</maxValue>
<type>double</type>
</variable>
<variable>
<name>SpannungXML</name>
<unitName>V</unitName>
<nameID>21</nameID>
.
.
.
Schönen verschneiten und guten morgen!
Ich steh gerade vor dem Problem dass ich ein XML File einlesen soll, in dem XML File stehen verschiedene strings, ints und doubles die ausgelesen und in c# variablen zugewiesen werden sollen!
Ich hab mir inzwischen in meinem Buch das XML kapitel durchgelesen komme dadurch aber nicht wirklich weiter, hat mir jemand Tipps wie ich das ambesten anpacken soll oder evtl auch ne Internetseite wo man eine gute anleitung oder auch tuts dazu bekommt?
Mfg
Muphin
Bestimmt, frägt sich nur wieviel aufwand du reinstecken willst!
Du kannst eine eigene Klasse vom TreeView ableiten und dann über die Einstellung des DrawMode angeben was er alles zeichnen soll, den Rest musst du dann z.B. in OnDrawMode selber machen!
jetzt hab ich da aber doch noch mal ne Frage!
Der Array List konnte ich vorher ja einen ganzen Bereich hinzufügen, aber bei einer queue konnte ich jetzt nichts finden das dort auch ein ganzer Bereich zur queue hinzugefügt werden kann, d.h. ich müsste ja jeden einzelnen Wert mit Enqueue an die Liste anhängen!
Ich weiß leider nicht wie das AddRange intern umgesetzt wird aber wenn ich den Code nur so sehe kommt bei mir da die Frage auf ob sich das mit der Queue dann immernoch genauso lohnt?
//vorher
m_values[ t_index ].AddRange( a_tempValues );
//jetzt
for( int i = 0; i < a_tempValues.Length; i++ )
{
m_valuesQueue.Enqueue( a_tempValues[ i ] );
}
mfg Muphin
Ja dann gehts nich, das is klar!
Dann würde er die Propertie nur nach dem Constructor auf den gewünschten wert ändern!
Vielleicht lässt sich das Problem ja auch irgendwie anders beheben, wofür brauchst du den Parameter denn unbedingt im Construktor?
mfg Muphin
Sehr schön, dann werd ich das mal mit ner Queue versuchen, vielen Dank für die Hilfe!
Der "Zeiger" wäre in diesem Fall auch nur ein int gewesen indem die position steht, also von 0 - 9999 bei einem array[ 10000 ]!
mfg muphin
Du kannst für einen Member deiner Klasse eine get/set Methode schreiben und auf diese kannst du dann in den Properties im Designer zugreifen!