Hi Leute!
Ich habe da mal ne Frage.
Ist es möglich einen Farbverlauf über 2 Farben Horizontal und 2 Farben Vertikal gleichzeitig zu haben. Ich kenne nur die Version nur Horizontal oder nur Vertikal oder Diagonal aber das ist alles nicht das was ich haben will.
Hier noch kurz meine Version für horizontal:
Graphics g;
Rectangle rc;
LinearGradientBrush c = new LinearGradientBrush(rc, Color1, Color2, LinearGradientMode.Horizontal);
Color[] EndColors = {Color1,Color2,Color3};
float[] ColorPositions = { 0.0f, 0.5f, 1f };
ColorBlend C_Blend = new ColorBlend();
C_Blend.Colors = EndColors;
C_Blend.Positions = ColorPositions;
c.InterpolationColors = C_Blend;
g.FillRectangle(c, rc);
MfG
blind
Knuddlbaer schrieb:
Ist die Möglichkeit virtual bei einer Eigenschaft zu verwenden nun sprachspezifisch oder wird dies durch die CIL garantiert ?
Eventuell kannst Du das aus dem Stehgreif sagen, ansonsten würde ich natürlich auch selbst nachlesen.
Das garantiert CIL:
ECMA-335, 8.11.3 schrieb:
CLS Rule 26: All property's accessors shall be static, all be virtual, or all be instance.
Andererseits kann eine Sprache natürlich verbieten, eine Property als 'virtual' markieren zu können.
DaEgi schrieb:
stellt es aber nicht eine wesentlich hoehere belastung der datenbank dar?
Nö, wenn die Zeilenanzahl sich nicht gerade im Millionenbetrag befindet, dürfte es vernachlässigbar sein. Wenn es langsam wird, und keine weiteren Zeilen eingefügt/geändert werden müssen könnte man ein Index über (ATTRIBUT1,ATTRIBUT2,ATTRIBUT3,OMGLOL) erwägen.
DaEgi schrieb:
jetzt stelle ich allerdings fest, dass man mit sql so ziemlich alles machen kann,
Vorsicht, SQL ist nicht Turing-vollständig.
DaEgi schrieb:
diese grundsaetzliche frage bzgl. der datatables bleibt allerdings bestehen.
wuerde gerne wissen wie sich das mit der zeilen spalten beziehung zu einander verhaellt wenn man neue spalten ins datatable einfuegt.
Ich weiß nicht wie sich das mit einem Strong-typed-Dataset verhält, da die Tabellenzeilen als Klasse abgebildet werden. Man fügt ja zur Laufzeit auch nicht irgendwelche Attribute zu Klassen (im Normalfall) hinzu. Bei 'wilden' DataSets, die per Indexer angefaßt werden, dürfte es kein Problem sein.
Knuddlbaer schrieb:
Mag sein, deswegen ist das .Net Framework noch lange nicht auf dem Status, das es generell als bereits installiert gelten kann.
Wenn es lauffaehig ist, ist es doch auch drauf...
Nun, Crysis Stalker oder sonstige Spiele sind auf meinem Rechner lauffaehig. Deswegen aber noch lange nicht "drauf".
oder anders gesagt: Du musst damit rechnen, dass nicht jeder .net installiert hat
Witzigerweise kommt dieser Thread an zweiter Stelle bei google :-).
Doch, ich habe gegoogelt, aber meist nur was gefunden, wie man ein 1bpp-Bitmap erstellt, oder wie man andere Bitmaps in 1bpp umwandelt.
Du hast sorgfältig gelesen, ich habe nicht erwähnt, dass ich darauf schreiben wollte (mit Fonts etc.), mein Fehler :-).
Hans_Wurst schrieb:
Warum meinst du, dass das das falsche Forum ist? Meinst du ich bin in der falschen Unterrubrik? Oder auf der komplett falsche Webseite?
Hin und wieder hilft auch selber denken. Er hätte das nicht geschrieben wenn er dafür keinen Anlass hätte. Um diesen Anlass herauszufinden, frag dich: Welche Sprache programmierst Du? Wie heißt diese Unterrubrik? Welche Unterrubriken gibt es sonst noch?
Achja: Jede Unterrubrik hat auch eine Beschreibung, in der noch etwas genaueres steht, falls der Name der Unterrubrik nicht eindeutig genug sein sollte.
@Badestrand:
Also so "portable" Anwendungen für USB Stick etc. mit .NET zu entwickeln halte ich für eine ganz doofe Idee, eben wegen dieser Schwierigkeiten.
Du hast aber natürlich Recht, das wäre ein Anwendungsfall.
Verstehe nur nicht wie ich das machen soll...
Habe das Problem jetzt sowieso anders gelöst.
Ich habe einfach in der Klasse Form1, in der die combobox ist einen zusätzlichen button, "neu laden" hinzugefügt.
So kann man die Wörter jetzt mit der Methode Fächerliste einlesen, muss dann aber um die Combobox neu zuladen den Button "neu laden" drücken, der ja in der geleichen klasse wie die Box ist.
Danke für deine Hilfe und schönen Tag noch
mfg Root
Das eine ist die technische Realisierung von Generics und das andere das andere das Verhalten (wie es die Sprach Sepzifikation vorschreibt) von Generics.
Das darf nicht verwechselt werden.
Die technischen Realisierung ist ein Impl. Detail.
Simon
abc.w schrieb:
Manchmal gibt es Situationen, wo man ein "if-else if" verwenden muss, z.B. in einem Bootloader für einen Mikrocontroller. Der Bootloader muss unbedingt 100% aus dem RAM laufen, und da der Compiler für ein "switch-case" unter Umständen irgendeinen optimierten Code aus einer Library einsetzt, die im Flash steht und nicht ins RAM ausgelagert werden kann...
Abgesehen davon dass das mit C# nun wirklich nichts zu tun hat... hängt es ganz vom Compiler ab wann und wo Runtime-Library Funktionen verwendet werden. Ein Compiler könnte genauso eine "if-else" Orgie "erkennen", einen Baum draus machen, und eine Runtime-Library-Funktion verwenden um den Baum zu "parsen". Hättest du wieder dasselbe Problem.
Da ich immer ne DataView dazwischen hatte kann ich Dir das für ne reine GrdiView nicht sagen. Aber die MSDN ist auch für Dich da, einfach mal ein wenig lesen.
(Es ist jetzt unbekannt ob Du die DGV unbound nutzt oder an ein DataSet gebunden hast und und und)
Die Methode die Du suchst hat vermutlich den Namen Add, AddRow oder irgendwas anderes in die Richtung. Wie gesagt, einfach mal die Hilfe benutzen.
Man kann die Datei auch als Ressource einbinden und ich vermute mal stark, dass genau das gefragt war:
Einfach in den Projektoptionen unter „Resources“ eine neue Standard-Ressourcendatei erstellen und Deine Datei per „Add Ressource“ > „Add Existing File …“ auswählen.
Dann kann im Code per <Projektnamensbereich>.Properties.Resource.Name_der_Datei auf den Inhalt der Datei zugreifen.
Du solltest keine Daten direkt im DataGridView ändern, sondern alles über die DataTable laufen lassen (sonst werden deine Daten beim Auslesen asynchron).
Und warum willst du denn keine Schleife verwenden? Ändere doch einfach das Beispiel entsprechend deinen Anforderungen ab.
Die Lösung die Klasse immutable zu machen ist technisch sicherlich möglich, aber das wäre doch aus völlig falschem Grund eingesetzt und der so erzeugte Code ist viel umständlicher als er sein müsste. Abgesehn von evtl. möglichen Performanceeinbußen da ja laufend neue Objekte der Klasse erzeugt werden, obwohl überhaupt nicht nötig.
Der Eventansatz von Konrad Rudolph ist der technisch viel bessere, auch wenn er bissle Arbeit bedeutet, es kommt halt net alles umsonst. Nur brauchst du nicht unbedingt was selber definieren, meist reicht auch INotifyPropertyChanged, je nachdem wie du drauf reagieren willst auf eine Zustandsänderung des Objektes.
hustbaer schrieb:
Ja hast recht, sowas ist nett.
Geht aber erst mit Studio 2008, oder?
Ja, na gut … aber es ging mir eigentlich eher weniger um die Extension Methods. Man kann das ganze ja auch als statische Funktion in einer Helper-Klasse machen.
Hallo,
und dieses Beispiel hier:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.headercell.aspx
hilft nicht?
MfG,
Probe-Nutzer
hustbaer schrieb:
Schlecht ist nur dass man (weil Java es halt so vorgemacht hat, und man es sich nicht anders zu machen getraut hat?) blöderweise auf freie Funktionen verzichtet hat, und daher jetzt gezwungen ist blöde statische Memberfunktionen zu verwenden.
VB-Module FTW!