Hallo zusammen,
ich finde im Grunde nichts verwerfliches daran, die ProgressBar einer Form von einer anderen Klasse aus zu steuern.
Man muss sich halt darüber im Klaren sein, dass dies relativ "Quick&Dirty" ist. Für das Hauptformular einer Anwendung empfiehlt es sich daher, ausschließlich mit Events zu arbeiten.
Dafür gibt es in ASP.NET das Table und das DataGrid Control. Ansonsten hilft natürlich auch immer selfhtml.org =)
<br /> ist die XML-valide Variante des Zeilenumbruchs.
aber wo erstellst du denn die andere klasse? das müsste ja dann entweder in Main() oder in der Form geschehen. dann kannst du diesem objekt doch eine referenz auf die form übergeben.
Das hängt von der eingestellten Culture ab.
Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator
warum hast du denn kein objekt?
da wirst du wohl nicht drum rum kommen =) ansonsten würde ich das mit einer Methode machen. SetProgressbarVal() oder sowas.
siehe vielleicht auch
[FAQ] Kommunikation von 2 Forms
hallo,
typedefs gibt es in c# (m.E. glücklicherweise) nicht.
link und lit wurden nicht instanziert.
[FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Hallo Golo,
ich denke darin liegt das Problem von UnitTests. Alles was über Methoden bzw. Objektgrenzen hinausgeht, also von externen Daten abhängt, ist mit Unit Tests nur sehr schwer zu testen.
Eine Lösung sehe ich im Aufbau einer Testumgebung, in der die Testfälle mit den realen Daten (z.b. Cookies) arbeiten können. Gewissermaßen also eine Parallelanwendung zum Testen. =)
So wie ich das sehe, handelt es sich um valides XML.
Wo hast du genau Probleme, was hast du schon gemacht, wo knallt es??
Du musst schon etwas konkreter werden damit wir dir helfen können.
gruß
siehe auch
http://msdn.microsoft.com/vstudio/express/support/faq/
punkt 4.
gruß
du darfst sie publizieren und auch gewerblich vertreiben.
ja =)
Ein vollständiger Pfad zu einer Datei enthält auch einen Dateinamen. Also z.b.
c:\Storage Card\Daten\Telefonbuch\datei.txt
Aber deine Fehlermeldung liegt an den Slashes.
Das kannst du auf zwei Arten lösen
1.
string path = "c:\\Storage Card\\Daten\\Telefonbuch\\datei.txt";
string path = @"c:\Storage Card\Daten\Telefonbuch\datei.txt"
noch was, es reicht schon, den Code und die Fehlermedlung zu posten =)
Du musst auch den Pfad zu einer Datei angeben, "C:" reicht da nicht aus.
.Dock = DockStyle Top ordnet die Controls immer an die oberste Stelle, also sowohl in Y als auch in Z Richtung. Deshalb wird das 2. Control das 1. verdecken. Zur Lösung würde ich dir DockPanel empfehlen.
Bitte benutz statt dessen Arrays bzw. List<>
siehe auch Dynamische Variablennamen
Eine weitere Möglichkeit stellt die MAC Adresse dar, welche eindeutig ist.
Allerdings lassen sich MAC Adressen auch manipulieren. Aber es ist zumindest sicherer als ein Registry Key.
Hallo Ben,
noch ein Tipp von mir: SharpDevelop ist seit der Version 2.1 in der Lage, VB.NET Code in C# zu übersetzen und umgekehrt.
Damit könntest du deine alten Programme nach C# umwandeln und sehen, wie sich Sprachkonstrukte hier verhalten. Was natürlich nicht die Lektüre eine guten Buches ersetzt... =)
http://www.icsharpcode.net/OpenSource/SD/Default.aspx
Hallo Buck,
hast du dir eigentlich den Thread durchgelesen? =) Es wurden doch jetzt genug Lösungswege beschrieben. Und auch welche, die sich nicht für dein Vorhaben eignen, z.b. Löschen mittels einer foreach Iterration.
Zum Löschen aller Labels:
for (int i=this.Controls.Count-1; i>=0; i--)
{
if (this.Controls[i] is Label)
{
this.Controls.RemoveAt(i);
}
}
Original von ben
Ich würde nun gerne wissen, was das "public clsTest()" auf sich hat.
Ist es nun eine Subroutine (void) oder eine Function?
Das ist der Konstruktor deiner Klasse.
Dieser entspricht dem New() in VB.Net.
Bitte schau mal in die FAQ
[FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Hi,
aber html ist ja nicht immer valides xml, es sei denn es ist xhtml =)
ich würde daher schon regex einsetzen, bzw. eine state-machine implementieren.
Du könntest statt einem String ein LinkButton auf deiner Page erstellen und dafür das Click-Event anmelden.
Du musst erst das Assembly per Assembly.Load() laden (unter Angabe des Full Qualified-Names). Dann kannst du mit Assembly.CreateInstance() deine Instanz erstellen.
Das find ich auch.
Bei Dingen wie prob, funzt, vllt, aba, höre ich relativ schnell auf zu lesen.
Hallo JunkyXL,
dem kann ich mich nicht anschließen. Immer public bedeutet auch, dass alle deine Klassen von fremden Assemblies verwendet werden können. Ich benutze daher recht oft den internal Modifier. Bei Kontrollen ist es auch sinnvoll, Klassen in der Hauptklasse zu kapseln, damit nur diese für den Endanwender sichtbar wird.
List<clsZufallszahl> colZufallszahl = new List<clsZufallszahl>();
P.S. bitte guide to C# oder ähnliches lesen.
class RT : RichTextBox
{
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
//mach was
}
return base.ProcessDialogKey(keyData);
}
}
.Close() schließt nur des Fenster. Wenn du das Objekt killen willst, nimm .Dispose()
Hallo und herzlich willkommen im Forum!
Ich würde dir zum Einstieg, die Lektüre eines guten Buches an Herz legen, z.b. "Die Kunst zu Programmieren" von Charles Petzold, das in die C# Programmierung und in die Programmierung allgemein einführt.
Die richtige IDE gibt es nicht, sondern nur eine, die dir gefällt. Es bieten sich die Express Version vom Visual Studio oder SharpDevelop an. (Beides kostenslos, letzteres GNU) Alternativ ist es als Anfänger auch nicht verkehrt, nur per Editor und Compiler zu entwickeln.
Gruß
Hi,
wie erstellst du denn überhaupt Objekte deiner Klasse? Das müsste ja an der Stelle schon nicht klappen, da sie als abstract deklariert ist. Weiterhin passt der Constructor (AKlasseNNN) nicht zum Klassennamen (KlasseXYZ). Ich will ja nicht rumnörgeln, aber ich finde auch die Bennennung deiner Klassen und Methoden (xxNNN, xxxXYZ) etwas unüblich... 🙂 Was besagt die Fehlermeldung?
Gruß
mhhh, eine möglichkeit wäre, die Primary Interop Assemblies ebenfalls mit auszuliefern und von deinem setup aus deren installation zu starten.
du kannst auch versuchen, die Microsoft.Office.Interop.Excel.Dll manuell zum setup hinzuzufügen.
Indem du einen Setup für deine Anwendung erstellst und diesen auslieferst.
du musst sicherstellen, dass das assembly Microsoft.Office.Interop.Excel.Dll im GAC des Zielrechners vorhanden ist, oder diese Datei im Verzeichnis deiner Anwendung existiert.
Hi,
also ich lasse mich von Musik beim Codieren oftmals ein wenig einlullen. Die geschwindigkeit in der ich code schreibe hängt dann vom tempo der musik ab. =)
deshalb vermeide ich eigentlich, musik beim codieren zu hören, es sei denn die jeweilige aufgabe ist enorm langweilig bzw. trivial.
Hallo,
setz mal die HideSelection Eigenschaften auf false.
Gruß
Synatktisch ist das ok. Was gibt es denn für eine Fehlermeldung? Ich vermute mal, dass fields nicht als public deklariert wurde.
Hallo,
natürlich können auch Zeilen hinzugefügt werden. Dazu musst du dafür sorgen, dass immer eine leere Zeile zur Eingabe bereitsteht. Es gibt dazu aber auch Artikel wie Sand am Meer, einfach mal googlen.
Hier z.b. ein netter Artikel: http://dotnetjunkies.com/Article/65DC168F-B2AD-408B-8AA0-AD90DD739317.dcik
Gruß
Hallo,
Ich würde es mit einem editierbaren Datagrid versuchen.
Gruß
Hallo,
wann soll denn dann die Validierung stattfinden, wenn nicht beim Verlassen des Controls oder nach Textänderung?
Gruß
Original von thejudge
foreach (Control ctrl in Controls) { if (ctrl is Label) // die if kannst du ja gegebenfalls verändern { // label entfernen } }
Hallo thejudge,
das wird nicht funktionieren, da ctrl nicht aus der zu durchlaufenden collection gelöscht werden darf.
klar, wir haben alle nichts besseres zu tun als dein projekt fertig zu machen... =)
nach allem was ich gelesen habe, ist
private const UInt32 MouseEventRightDown = 0x008;
aber kann es nicht mit sicherheit sagen.
Original von al3ko
ich meine, es so verstanden zu haben, dass in der main methode lediglich die objekte erzeugt werden und in den klassen die baupläne meines bruches sind? das ist doch der witz bei der oop, oder?
der witz an der oop ist vor allem, dass klassen wiederverwendbar sind. das wäre aber nicht der fall, wenn du darin daten per Console.ReadLine() einliest. Denn dann wären deine klassen auf den anwendungstyp konsolen-applikation beschränkt.
Hallo,
ich würde dir raten, Tastatureingaben in deinem Objektmodell zu vermeiden. Wenn du eine Klasse schreibst, die einen Bruch abbildet, ist das eine gute Idee. Tastatureingaben sollten aber IMMER nur durch die Main Methode gemacht werden, und an die jeweiligen Klassen weitergegeben werden. Dazu hast du ja auch schon Eigenschaften definiert. Wenn du deine Klasse irgendwann einmal in einer Win-Form Applikation einsetzten willst, wirst du mit den Conse.ReadLine() Aufrufen Probleme bekommen. Deshalb: Tastatureingaben und Objektmodell immer strikt trennen. Ich hoffe das war einigermaßen verständlich erklärt =)
Gruß
Hallo,
wenn du bei google "screenshot c#" eingibst, kommt an 1. stelle sowas:
http://www.developerfusion.co.uk/show/4630/
Sorry, aber ich verstehe wirklich nicht, warum man sowas nicht selbst suchen und finden kann.
Gruß
das ist natürlich einfacher, aber um
existenceResultat.Close();
auszuführen, ist dann der finally block notwendig. naja, muss jeder machen wie er will.