Hallo Google10,
mithilfe von extension Methods und ein wenig Regex kannste Dir sowas schnell selber bauen
ok die extension methods brauchste nicht unbedingt
mfg
du solltest Dir die einzelnen FAQ beiträge schon richtig durchlesen
explarisch eine Problembeschreibung:
Zitat:
Wenn ich eine Windows-Forms-Anwendung laufen lasse und aus irgendwelchen Gründen in eine andere Anwendung wechsle, bekomme ich keine aktuelle Darstellung mehr.Die Anwendung läuft und macht ihren Job (432 Dateien bearbeiten), aber ich bekomme keine Info wie weit die Anwendung ist - die Progressbar bewegt sich nicht, selbst wenn ich nicht auf eine andere Anwendung umgeschaltet habe.
Das GUI ist blockiert, das Fenster lässt sich auch nicht bedienen, also nicht verschieben, nicht maximieren oder minimieren. Beim Versuch das Fenster zu schließen kommt ein Dialog "Das Programm reagiert nicht" mit der Möglichkeit das Programm "Sofort beenden" zu können.
Diese Effekte treten immer dann auf, wenn langlaufende Aktionen (Aktionen, die länger als 1/10s laufen oder laufen können) im GUI-Thread ausgeführt werden.
Die Lösung
Diese langlaufenden Aktionen, die länger als 1/10s brauchen, müssen in einen extra (Arbeits-)Thread ausgelagert werden. Dazu kann man einen extra Thread starten, auf den ThreadPool zurückgreifen oder einen BackgroundWorker verwenden.
mfg
Hallo smilingbandit,
zu diesem Problem empfehle ich
[FAQ] Warum blockiert mein GUI?
und möglicherweise
[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke)
mfg
beim Programmstart muß die variable natürlich gesetzt werden
mfg
Hallo landau66,
möglich wäre es auch das ganze mit eine statische zähl variable zu Implementieren
mfg
Hallo csharpstarter,
das kannste manuell mit SubString() lösen
jedoch solltest du auch eine anständige Worttrennung mit reinbringen
mfg
Hallo handycommander,
warum sollte das funktionieren?
der Empfänger deiner Software könnte doch seinerseits auch die express variante installieren
mfg
Hallo kpatrickk,
du köntest Dir mal den Editor vom Sharp Develop mal ansehen
mfg
Hallo Ayke,
Du könntest dein Ausdruck doch auch mit $ abschließen dann können keine anderen Zeichen eingegeben werden
falls du trotzdem die zeichen haben willst kannste doch genau das als Regex Ausdruck verwenden was nicht erlaubt ist
mfg
kannst dich ja mal dort umschauen http://codeproject.com/
mfg
Hallo saschap,
dreht es sich um wpf oder windows forms?
die wie die Große ListView in Outlook
meinst du das an der linken seite? (das wäre doch ein tree mit überschribenen Nodes)
mfg
@herbivore
natürlich hast Du wie immer Recht " " wäre die bessere wahl
mfg
das stimmt natürlich das WPF hatte ich total übersehen
mfg
Hallo csharpstarter,
ja das wäre ein weg,
wenn du aber viele Werte hast könnte auch eine Collection als übergabe an das jeweilige Unterform herhalten
mfg
Hallo akswift,
nur so als versuch
List<string> a = new List<string> { "A", "B", "C" };
List<string> b = new List<string> { "B" };
var erg = from str in a
where !b.Contains(str)
select str;
mfg
Hallo LukeGee,
warum ersetzt du die Zeichen nicht einfach durch "" solange die Daten im Grid angezeigt werden?
und wenn du diese zeichen gar nicht mehr benötigst, würde ich diese sogar vor dem in die Db schreiben komplett ersetzten
mfg
genau so sollte es klappen
dann mußt du wohl mal manuell in die registry schauen ob der Pfad dort vorhanden ist
mfg
Hallo Locutus und Herzlich Wilkommen,
Du könntest dir ein eigenes Event implementieren das das ganze eben nur weiterleitet
http://msdn2.microsoft.com/de-de/library/8627sbea.aspx
mfg
hallo theguardian,
das liegt daran das dein registry pfad falsch ist
richtig wäre
software/MICROSOFT/windows ...
mfg
Hallo flyAway,
du könntest mal in die Registry schauen ob die Pfade dort gespeichert werden wenn ja dann kannst du diese ja auch dort auslesen
mfg
das wäre doch gar nicht so schwer eine Queue kannst ganz einfach benutzen
im NameSpace System.Collections.Generic
PS. Selbst mit einem Timer kannst Du diesen Weg gehen
mfg
while(!(this.textbox1.Text.EndsWith("validatepassed")))
nee so macht man das nicht, unnütige Last
ich würde am anfang alles zum beispiel in eine generische Queue reinladen
und dann immer wieder sobald ein bestimmtes Ereigniss eintritt (zb dein validatepassed in der textbox) die Queue nacheinander abarbeiten
mfg
Hallo Zumlin ,
du könntest in einem Timer abfragen ob das was du willst drin drinsteht
mfg
Hallo dcna91,
einerseits kannst Du die Text Eigenschaft der Form im Designer ändern
oder nach dem Aufruf der InitializeComponent Methode mit this.Text
oder aber aus einem Anderen Form mit einem Event
so dass die eigene Form das jeweilige Propperty verändert
mfg
Hallo karsten_88 und Herzlich Willkommen,
versuchen könnte man es mit Regulären ausdrücken
mfg
Hallo Kalle,
mit einem Stream auf den Port 80 verbinden und das lesen was zurückkommt
mfg
Hallo messiah_net,
wie wäre MS-SQL Express ?
mfg
Hallo danjah und Herzlich Willkommen,
es geht auch kostenlos
http://www.galileocomputing.de/openbook/csharp/
http://www.galileocomputing.de/openbook/visual_csharp/
mfg
Hallo burnersk,
das was du suchst nennt sich PLUGIN
ein Plugin ist normalerweise eine Dll datei und ja auch eine dll Datei kann eine Gui enthalten
such einfach mal hier im Forum nach Plugin
der rest wäre reine Implementation
mfg
Hallo Ihr beiden
@benny! Herzlich Willkommen
warum benutzt ihr nicht einfach UserControls ?
einfach das was ihr jetzt auf dem Panel habt in ein userControl und diese dann dynamisch auf die Form setzten
mfg
Hallo burnersk,
ließ Dir doch mal den kompletten Artikel durch und lade Dir den Code mit runter
mfg
Hallo Bench,
ich denke für den anfang sollte das reichen
textbox1.WordWrap = false;
textbox1.Multiline = true;
textbox1=ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
mfg
Hallo lucksn,
Du kannst bei einer Combobox doch bei Items.Add(); ein Object übergeben,
zb
public class Obj {
public int id;
public string val;
public override String ToString() {
return val;
}
}
public void AddToCbx(){
Obj o = new Obj();
o.id = 1;
o.val = "test 1";
comboBox1.Items.Add(o);
}
das hat auch den Vorteil das du die Id sofort zur hand hast sobald du einen Cast auf Obj machst
mfg
Hallo Jelly,
Du könntest es Dir sehr einfach machen,
wenn du einfach die Controls die du auf den jeweiliegen Tabs haben möchtest
als user Control realisierst,
das hätte gleichzeitig auch die Trennung als positieven nebeneffekt.
und wie man ein Usercontrol zur Laufzeit auf die jeweilige Form packt
wirst du ja wohl wissen.
Die Navigation könnte dann zb per tree erfolgen
mfg
Hallo Waldi,
Du könntest in der zweiten Form ein event Implemetieren welches von der ersten From registriert wird, dadurch kannst du das Event des Start Buttons an die erste From weiterleiten und dadurch wird der Timer gestartet
mfg
hallo csharpstarter,
naja deaktivieren nicht so ganz
aber wenn du ein flag beim keydown der w taste auf true setzt und dieses flag einfach bei jedem anderen keydown und keyup abfragen wenn true dann zb deine Aktion nicht ausführen. oder den vorgang solange möglich mit e.Handled = true; beenden
mfg
dann versuchs doch mal mit Length anstatt count
mfg
Hallo RHX und Herzlich willkommen,
Du brachst nicht vorher checken ob *.jpg dateien im Ordner liegen
denn wend dort keine liegen siehst du das an der Grösse des arrays
Größe = 0 --> keine jpg dateien im Pfad
und dir ist schon klar das du dieses hier 'fileNames[].contains("]--");"' in einer schleife für jeden einzeln machen mußt oder ?
mfg
Hallo RitterChristian,
könnte es sein das die Klasse KDesignerElement keinen Konstruktor ohne Parameter hat?
mfg
Hallo Tam0r,
Die Antwort auf diese und auch weitere Fragen dieser Art kannst Du besser in einem Buch finden als hier im Forum
zb http://www.galileocomputing.de/openbook/csharp/
Stichwort Anweisungen und Ausführungsverlauf
mfg
Hallo Bench,
wenn Jake Dir etwas empfohlen hat dann wird da wohl auch die Lösung drinstehen doch dafür müßtest natürlich dieses Buch einmal lesen
und wenn Du auch einmal hier im Forum suchen würdest würdest Du auch recht schnell fündig werden
mfg
Hallo blue31084,
sorry, jedoch habe ich immer noch nicht so richtig verstanden was du nun möchtest
mfg
Hallo valderrama und Herzlich Willkommen,
Du solltest die Daten ja auch nicht komplett zu beginn laden, es sein denn mithilfe eines eigenen LoadThreads wovon ich aber bei dieser Anzahl eher abraten würde.
Eine bessere Lösung an dieser Stelle wäre ein Dynamisches nachladen von einer geringen Anzahl von Datensätzen.
diue frage wäre jedoch zuerst was willst Du mit den DAten anstellen
Anzeigen ? Dynamisch nachladen
für Berechnungszwecke solltest du die Berechnung lieber auf die Datenbank auslagern
mfg
Hallo KleineSarah und Herzlich Willkommen,
ich kann mir zwar nicht vorstellen dass, das funktioniert
aber ich habe per zufall da mal etwas zu im netzt gefunden
http://subscribe.ru/archive/comp.soft.prog.vbaspsharpnet/200708/30060652.html
ist zwar russisch das kannste dir ja zb mit google übersetzen lassen
mfg
Hallo mendite,
dieses Problem wirst Du immer haben falls Du dein Programm mal auf einen zb Kunden Rechner installierst.
Das Problem ist wie schon vermutet hast die unterschiedlichen Versionen von Office
Ein Stichwort das Dir in diesem zusammenhang helfen könnte wäre Late Binding
Such einfach mal hier im Forum nach diesem Stichwort
mfg
dann wird wohl alles bis auf das eine Programm gesperrt sein
oder es könnte auch eine andere shell in der registry eingetragen sein
mfg
Hallo bhelbig,
wenn ich mich jetzt nicht absolut irre dann ist der Kiosk Modus von XP eine Funktion wo der Admin des jeweligen Systems jede Aktion für diesen Modus freigeben kann
einerseits können Programme ausgewählt werden die gestartet werden dürfen
und auch die Systemfunktionen können ausgewählt werden also wenn der Admin meint der User darf den Rechner herunterfahren dann muß er das aktivieren.
Und nicht du in deinem Programm
mfg