Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von darefilz
Thema: Regex: Quantifizierer in Lookarounds immer lazy?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

danke für die Antwort.

Zitat
Das bedeutet, dass zuerst nach a gesucht wird und danach die zusätzliche Bedingung (?≤.{0,30}) geprüft wird.
Das macht Sinn, stimmt. Und dann hat das Ganze auch schon nichts mehr mit lazy oder greedy zu tun. Alles klar, danke.

darefilz

Thema: Regex: Quantifizierer in Lookarounds immer lazy?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten Abend,

ich bin gerade auf eine interessante Sache gestoßen, bei der ich den Fehler nicht bei mir finden kann (was nicht heißt, dass es nicht mein Fehler ist): und zwar verhalten sich alle Quantifizierer in allen Lookarounds lazy.
Beispiel: der reguläre Ausdruck ".{0,30}a" verhält sich wie angegeben greedy (und trifft (nach den anderen Zeichen) das letzte 'a' im Bereich von 30 Zeichen), aber der Ausdruck "(?≤.{0,30})a" trifft das erste 'a' und verhält sich somit lazy (obwohl kein ? angegeben ist).

Ich habe das mit allen anderen Lookarounds und allen anderen Quantifizierern getestet und sie verhalten sich ebenso faul, wie der im Beispiel.
Soll das so?
Ich habe kräftig gegoogelt und bei Microsoft selbst nachgelesen, aber nirgends ist dieser Sachverhalt beschrieben.

Freue mich über jeden Beitrag.
Danke, df

Thema: Generischer Typ soll serialisierbar sein
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Okay. Danke für die Antworten. Werde gucken, dass ich das Ganze etwas anders umsetze...

Thema: Generischer Typ soll serialisierbar sein
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo.

Ich habe folgendes Problem und komme einfach nicht wirklich weiter.
Ich habe ein generisches Interface. Ich will aber sicherstellen, dass der generische Typ serialisierbar ist.
Also habe ich sowas versucht:

interface I<T> where T : ISerializable
Das funktioniert aber irgendwie nur indirekt, da Klassen, die ISerializable implementieren nicht zwingend auch das SerializableAttribute haben müssen.
Also habe ich intuitiv das hier probiert.

interface I<T> where T : SerializableAttribute
Das funktioniert aber natürlich nicht, weil SerializableAttribute sealed ist.

Und jetzt weiß ich nicht weiter.
Hat von euch vielleicht einer einen Tipp für mich?

Grüße

Thema: Dictionary<K, V> und die Erweiterungsklasse "Enumerable"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo JAck30lena.

Zitat
welchem argument??
Mit dem ersten Argument meinte ich

public static void F(this string str) { }
das "this string str". War vielleicht etwas unglücklich ausgedrückt.
Zitat
die interfacemember sind explizit implementiert. das bedeutet, das du die dictionary klasse explizit gegen das interface casten musst um an die methoden händisch zu kommen.
Das ist klar, aber um die Methoden des Interfaces geht es mir nicht, sondern um die Erweiterungsmethoden für dieses Interface.

Aber wie auch immer, das Ganze hat sich insofern geklärt, dass das gar nicht stimmt, was ich erzählt habe. Dictionary<K, V> wird sehr wohl um die besagten Methoden erweitert, nur aus irgendeinem Grund habe ich das nicht gesehen. Vielleicht fehlte mir eine Using-Direktive oder ein Assemblyverweis oder so, keine Ahnung.
Aber trotzdem vielen Dank.
_void.

Thema: Dictionary<K, V> und die Erweiterungsklasse "Enumerable"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Einen wunderschönen Abend zusammen.

Also, mir ist vorhin etwas aufgefallen, das ich leider nicht verstehe:
Die Klasse Dictionary<K, V> ist scheinbar nicht von den diversen Erweiterungsmethoden der Enumerable-Klasse betroffen. Aber warum nicht?!
Nach meinem Verständnis sollten diese Methoden doch alle Klassen erweitern, die im ersten Argument hinter dem this stehen; in diesem Fall alle Klassen, die IEnumerable<T> implementieren. Dictionary<K, V> implementiert IEnumerable<T> auch (genau wie z.B. List<T>, bei der die Erweiterungsmethoden greifen), aber trotzdem wird es nicht erweitert.

Kann mir da jemand weiter helfen, irgendwie scheine ich da was zu übersehen...

Vielen Dank und liebe Grüße, _void

Thema: Drei (knifflige) Fragen zu Keys
Am im Forum: GUI: Windows-Forms

Na gut. Nervt zwar, aber wenn's nichts ernstes ist...

Thema: Drei (knifflige) Fragen zu Keys
Am im Forum: GUI: Windows-Forms

Hi.

Hm... eigentlich wollte ich das nicht über DirectInput machen, aber ich habe mich da mal ein bisschen eingelesen und gemerkt, dass es doch schon Vorteile birgt.
Vielen Dank für den Code, ist bestimmt eine gute Starthilfe.

_void


edit:
hm... bei mir kommt immer die Fehlermeldung

LoaderLock wurde erkannt.
Message: Die DLL "C:\WINDOWS\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll" unternimmt einen Versuch,
innerhalb der Sperre für den OS-Loader eine verwaltete Ausführung durchzuführen.
Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen,
da dies ein Hängen der Anwendung zur Folge haben kann.
Hattest du die auch, bzw. weißt du, was das ist und wie man das wegkriegt?

Thema: Drei (knifflige) Fragen zu Keys
Am im Forum: GUI: Windows-Forms

Mir geht es nicht um die Shifttasten, sondern um die Control- und die ALT-Tasten.
Allerdings gibt es auch bei den Shifttasten keine Unterschiede bei den in den KeyEventArgs enthaltenen Properties. Oder ich sehe sie nicht, bitte zeig mir, welche du meinst.

Die Shifttasten sind aber eher deswegen kein Problem, weil die beiden Tasten verschiedene Scancodes haben. Die Control- und ALT-Tasten haben dummerweise die gleichen Scancodes und entziehen sich somit einer genaueren Unterscheidung.

Thema: Drei (knifflige) Fragen zu Keys
Am im Forum: GUI: Windows-Forms

Hi winSharp93. Die Antwort kam schneller als ich dachte. Danke.

Ja, an Hooks hatte ich auch schon gedacht. Und die PrintScreen-Taste kriege ich wirklich wenn ich die WH_KEYBOARD_LL hooke. Ist zwar etwas umständlich, aber geht.
Die Windows-Taste kriege ich aber nicht unterdrückt. Vielleicht mangelt es mir aber an der Stelle auch am entsprechenden Skill.

Aber das mit dem Merken der Control-Keys habe ich nicht verstanden... Was genau soll ich mir da merken?

Thema: Drei (knifflige) Fragen zu Keys
Am im Forum: GUI: Windows-Forms

Hallo ihr.

Ich habe drei Probleme beim Handling von vom Benutzer gedrückten Tasten:

1.: Wie kann ich unterscheiden, ob die rechte oder die linke Control-Taste gedrückt wurde? Das gleiche betrifft die ALT-Tasten.

Das klingt erstmal simpel, aber ich zerbreche mir echt den Kopf drüber.
Ich habe zwar einen Ansatz und bin auch schon recht weit, aber um euch nicht zu beeinflussen, will ich den noch zurückhalten. Vielleicht bin ich ja voll auf dem Holzweg...


2.: Wie bringe ich mein Programm dazu zu verhindern, dass Windows beim Druck auf die linke oder rechte Windows-Taste das Startmenü zeigt?

3.: Wie kann ich die Print-Taste (bei der Windows einen Screenshot macht) abfangen?


Vielen Dank und liebe Grüße, _void

Thema: Controls im Designer unsichtbar
Am im Forum: GUI: Windows-Forms

Hallo zusammen.
Ich habe ein merkwürdiges Problem:

Ich habe ein selbstgebautes Control (abgeleitet von ContainerControl), das ein Panel und noch ein paar andere Elemente enthält.

Ich habe die Controls-Eigenschaft meines Controls überschrieben und verweise auf die des Panels:

[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new Control.ControlCollection Controls
{
	get { return this.container.Controls; }
}
(this.container ist das besagte Panel)

Im Prinzip funktioniert auch alles super.
Aber im Designer sind alle Controls, die ich meinem Control (und damit dem Container-Panel) hinzufüge, unsichtbar. Beim draggen meines Control werden sie sichtbar, nach dem droppen wieder unsichtbar.

Dieses Thema hier beschreibt das selbe Problem, es hat aber leider keine Lösung gegeben.
Weiß irgendjemand was?

Vielen Dank. _void

Thema: [gelöst] Taskleistentext ohne Titelleiste
Am im Forum: GUI: Windows-Forms

Hallo, ich nochmal.

Also, ich habe eine Lösung gefunden. Und zwar geht's mir dem API-Aufruf SetWindowText ganz gut.
Beispiel:


public class Form1 : Form
{
	[DllImport("user32.dll")]
	private static extern int SetWindowText(IntPtr hWnd, string lpString);

	public Form1()
	{
		this.ControlBox = false;
		this.Text = string.Empty;

		SetWindowText(this.Handle, "Irgendein Text");
	}
}

Grüße, _void

Thema: [gelöst] Taskleistentext ohne Titelleiste
Am im Forum: GUI: Windows-Forms

Hm, das ist ja mieß.
Naja, wenn ich nicht drumrum komme... vielen Dank für Antworten!

Grüße.

Thema: [gelöst] Taskleistentext ohne Titelleiste
Am im Forum: GUI: Windows-Forms

Hi
Danke für die schnelle Antwort.

Den Artikel habe ich auch schon durchgelesen, aber es scheint mir ein wenig zu viel Aufwand für mein kleines Problem. Außerdem hat der Code an einigen Stellen Fehler und um die zu beheben, müsste ich mich da erst richtig einarbeiten und dazu fehlt leider die Zeit.

Danke trotzdem. Bitte um weitere Vorschläge.

Thema: [gelöst] Taskleistentext ohne Titelleiste
Am im Forum: GUI: Windows-Forms

Hallo zusammen.

Ich brauche ein Fenster komplett ohne Titelleiste.
Es soll aber trotzdem ein Rahmen gezeichnet werden, der auch in der Größe veränderlich ist, deswegen fällt BorderStyle = None leider weg und es kommt nur BorderStyle = Sizable in Frage (glaube ich).
Die einzige Möglichkeit, die ich gefunden habe, ist ControlBox = false und Text = "" zu setzen, aber dann wird natürlich auch in der Taskleiste nichts angezeigt. Dort soll aber ein Text stehen und ein Icon soll auch hin.

Weiß jemand, wie ich das realisieren kann?

Vielen Dank.

Thema: Neuen Eintrag ins Desktop-Kontextmenü
Am im Forum: GUI: Windows-Forms

Werde mir das mal anschauen, vielen Dank.

Thema: Form_Load abbrechen
Am im Forum: GUI: Windows-Forms

Hi TeDe1408.

Soweit ich weiß, klappt das nicht.
Es wird zwar gewartet bis dein EventHandlers durch ist (sprich, du kannst eine MessageBox oder so dazwischen schieben), aber das Fenster wurde vorher schon erstellt und der Befehl zum Zeigen des Fensters wird in jedem Fall gegeben. Selbst wenn du direkt Application.Exit(); aufrufst, wird dein Fenster einmal kurz aufflackern.

Du wirst das vor dem Show-Aufruf deines Fensters überprüfen müssen, wenn du's sauber haben willst.

Grüße.

Thema: Neuen Eintrag ins Desktop-Kontextmenü
Am im Forum: GUI: Windows-Forms

Hallo zusammen.

Hier mal was schwierigeres:
Wie kriege ich ein neues MenuItem, das beim Klick auf meine Anwendung verweist, in das Kontextmenü des Desktops?

_void

Thema: Externe ScrollBar für Panel
Am im Forum: GUI: Windows-Forms

Ja, ich weiß.
Ich bin nur auf der Suche nach einer eleganten Lösung.
Würde mich aber nicht wundern, wenn es die für mein Problem nicht gibt.

Thema: Externe ScrollBar für Panel
Am im Forum: GUI: Windows-Forms

Danke erstmal.

Mit zwei Panels hatte ich das auch schon, funktiert auch, aber gefällt mir nicht.
Und ehrlich gesagt, ist selbst die Variante mit der externen ScrollBar nicht mein Favorit.

Hm... hätte ich vielleicht mal direkt mal angesprochen, aber ich vermute, dass mir da nicht helfen ist:
Am liebsten möchte ich nämlich die ScrollBars des Panels komplett durch meine eigenen ersetzen.
Am besten so, dass ich am Ende ein einziges Control habe. Und halt nicht zwei oder sogar drei.

Hat damit schonmal jemand zu tun gehabt?

Thema: Externe ScrollBar für Panel
Am im Forum: GUI: Windows-Forms

Hallo, ihr lieben.

Ich möchte gerne ein Panel über eine eigene ScrollBar steuern.
Das scheint irgendwie schwieriger zu sein als erwartet...

Also, ich habe AutoScroll auf false und AutoScrollMinSize auf (0; 0), da die ScrollBars vom Panel ja niemals angezeigt werden sollen.

Im Scroll-EventHandler meiner eigenen ScrollBar habe ich folgendes stehen:


this.panel1.VerticalScroll.Value = this.vScrollBar1.Value;

Das funktioniert auch eigentlich ganz gut, aber bei jedem Scroll flackert die Panel interne ScrollBar einmal kurz auf.
Sieht natürlich total kacke aus!

Weiß da vielleicht jemand Abhilfe?

Vielen Dank

Thema: TopMost Control
Am im Forum: GUI: Windows-Forms

Hallo Forum.

Hat jemand von euch eine Ahnung, wie ich ein Steuerelement einer Form (in meinem Fall ein UserControl) topmost kriege, sodass es auch über den Clientbereich der Form herausragen kann?
Ich denke da an einen ähnlichen Effekt, wie bei dem Listenteil einer ComboBox.

Habe es schon mit der SetWindowPos-API versucht, bin aber erfolglos geblieben...

Vielen lieben Dank schonmal.

Thema: Listview Flackert, egal was ich mache
Am im Forum: GUI: Windows-Forms

Hallo zusammen.

Ich weiß, dass das Thema schon lange geschlossen ist und ich will auch sicher nicht rumklugscheißern.
Ich habe nur ähnliche Probleme mit dem ListView-Control und bin über die Suche in dieser Diskussion gelandet. Für alle, die noch nach mir hier landen, soll nur zumindest am Ende etwas "richtiges" stehen, wenn ich selbst die Lösung schon nicht geben kann.

Mit dem "base"-Schlüsselwort hat das Ganze nichts zu tun!
"base" (bei Konstruktoren) ist lediglich dafür da, um ggf. überladene Konstruktoren der Basisklasse zu steuern. Gibt man "base" nicht an, wird standardmäßig der parameterlose Konstruktor der Basisklasse aufgerufen.

Ich selbst habe auch schon alles ausprobiert, um das Flackern beim Sortieren von den Items wegzubekommen; keine Chance. Theoretisch soll DoubleBuffered ja helfen, praktisch ist es aber für die Katz! SuspendLayout/ResumeLayout bzw. BeginUpdate/EndUpdate bringen auch nichts. ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, alles schon ausprobiert - Essig!
Das ListView flackert eben; ich habe noch nirgends eine brauchbare Lösung gefunden.

Liebe Grüße, _void

Thema: DataBindings und Hashtables
Am im Forum: GUI: Windows-Forms

Hm, ich glaube sogar gar nicht mal, dass es mit den Generics steht oder fällt.
Die Sache ist ja, dass

listBox2.DataBindings.Add("DataSource", listBox1, "SelectedValue");
so erstmal nicht klappen kann, weil hinter dem SelectedValue ja eine Hashtable steht.
Ich habe versucht, dass über das Format-Event zu machen,


private void binding_Format(object sender, ConvertEventArgs e)
{
	e.Value = arrayVonDataItems((Hashtable)e.Value);
}
aber er sagt mir immer, dass die Datenquelle weder IList noch IListSource implementiert...

Ich weiß aber nicht, wie es sonst gehen soll.

_void

Thema: DataBindings und Hashtables
Am im Forum: GUI: Windows-Forms

Hallo.

Es gab schonmal ein Thema zu Hashtable <-> Databinding.
Ich habe mir das durchgelesen, aber entweder Hashtables sind gänzlich ungeeigenet für DataBinding oder mein Problem ist einfach ein anderes. (Wobei ich mittlerweile der Überzeugung bin, dass ersteres auf jeden Fall zutrifft).

Wie auch immer. Mein Problem ist eigentlich ganz simpel:
Erstmal habe ich eine Hashtable. Die Hashtable hat als Keys Strings und als Values wieder Hashtables, die nach dem gleichen Schema gebaut sind.
Jezt habe ich noch eine oder mehrere ListBox(en), an die ich diese Hashtables binden will.

Ich dachte mir das folgendermaßen:
Da Hashtable ja nicht IList implementiert, habe ich mir eine Hilfsklasse gebaut.


public class ListControlDataItem<TData>
{
	private string text;
	private TData data;

	public ListControlDataItem(string text, TData data)
	{
		this.text = text;
		this.data = data;
	}

	public TData Data
	{
		get { return this.data; }
	}

	public string Text
	{
		get { return this.text; }
	}
}
Generisch deswegen, weil ich die Klasse auch noch für andere Dinge brauche.
Auf jeden Fall werden die Keys in das Text-Property und die Values (wieder Hashtables) in TData gekapselt.

Ich schreib's mal eben auf...


private List<ListControlDataItem<Hashtable>> arrayVonDataItems(Hashtable hashtable)
{
	List<ListControlDataItem<Hashtable>> list = new List<ListControlDataItem<Hashtable>>();

	foreach(DictionaryEntry e in hashtable)
	{
		list.Add(new ListControlDataItem(e.Key, e.Value));
	}
	return list;
}
Hab ich jetzt von Hand geschrieben, müsste aber stimmen...

Das Setzen der DataSource der ersten Listbox sieht dann quasi so aus:


private void setDataSource()
{
	listBox1.DisplayMember = "Text";
	listBox1.ValueMember = "Data";
	listBox1.DataSource = arrayVonDataItems(hashtable1); oder so
}
Klappt auch.

Aber wie binde ist jetzt die weiteren Listboxen an die verschachtelten Hashtables?

Ich sowas versucht:


private void bind()
{
	listBox2.DisplayMember = "Text";
	listBox2.ValueMember = "Data";
	listBox2.DataBindings.Add("DataSource", listBox1, "SelectedValue");
}
oder auch versucht mit den Format- und Parse-Events der Binding-Klasse zu arbeiten.
Aber nichts funktioniert. Er verheddert sich immer mit den Typkonvertierungen. Ist ja auch irgendwie klar, aber ich weiß nicht, wie ich ihm beibringen soll, dass das arrayVonDataItems((Hashtable)listBox1.SelectedValue) die DataSource der zweiten ListBox sein soll.

Ich hoffe, ich habe das Problem klar geschildert und hoffe auf Lösungsvorschläge. Die können auch durchaus ganz anders sein, als meiner, nur die bekloppte Hashtable-Verschachtelung ist leider fest.

Vielen Dank und liebe Grüße, _void

Thema: ConfigurationManager
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Auch ein sehr guter Artikel. Hilft.

Vielen Dank.

Thema: ConfigurationManager
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke.

Mit dem ConfigurationManager scheint das aber nicht viel zu tun zu haben(?)

Thema: ConfigurationManager
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community.

Ich habe eigentlich kein konkretes Problem, ich habe nur keinen Plan, wie ich den ConfigurationManager handhaben soll, bzw. ob der für meine Zwecke überhaupt geeignet ist.
Habe schon ein bissche im Web gesucht, aber so richtig gefunden habe ich nichts.

Ist er denn dafür geeignet, einfache User-Einstellungen zu speichern.

Vielleicht hat ja jemand Lust, mir einen kurzen Abriss zu gegen, was der kann, was nicht und wie's im groben geht.

Vielen Dank. _void

Thema: InputBox
Am im Forum: Projekte

Okay, lieb dass du das sagst, hatte wirklich ein bisschen das Gefühl.
Ist nämlich mein erstes Projekt, was ich in diesem Forum veröffentliche und ich weiß überhaupt nicht, wie das so ankommt.

Trotzdem natürlich: konstruktieve Kritik kann ich am besten gebrauchen!