Laden...
Avatar #avatar-1903.gif
.unreal myCSharp.de - Member
Sexbombenentschärfer Nähe Zürich Dabei seit 26.11.2004 563 Beiträge
Benutzerbeschreibung

Forenbeiträge von .unreal Ingesamt 563 Beiträge

03.05.2006 - 14:28 Uhr

Hi sandman

Du kannst den MouseMove Event von der Form fangen. Die Mausebewegung selber zu steuern hört sich absurd an, geht aber, schau mal unter www.codeproject.com, gibt ein Beispielprojekt "Parkmouse".

Gruss,
.unreal

03.05.2006 - 11:18 Uhr

Hallo Golo Haas

Wie merkst du dir, wann die List verändert wurde? Oder refresht du den CurrencyManager nur im Event DataSourceChanged vom DataGridView?

Gruss,
.unreal

03.05.2006 - 10:45 Uhr

Hi Golo Haas

Ich kenn mich auch noch nicht so gut aus mit DataBinding, bin mich erst am einarbeiten.

Guck ma in der Doku nach CurrencyManager.Refresh();

Das habe ich dort gefunden:

private void DemonstrateRefresh(){
    // Create an array with ten elements and bind to a TextBox.
    string[] myArray= new string[10];
    for(int i = 0; i <10; i++){
       myArray[i] = "item " + i;
    }
    textBox1.DataBindings.Add ("Text",myArray,"");
    // Change one value.
    myArray[0]= "New value";

    // Uncomment the next line to refresh the CurrencyManager.
    // RefreshGrid(myArray);
 }
 private void RefreshGrid(object dataSource){
    CurrencyManager myCurrencyManager = (CurrencyManager)this.BindingContext[dataSource];
    myCurrencyManager.Refresh();
 }

Ich versteh das nicht ganz. Unter Remarks steht:

Use the Refresh method when the data source does not support notification when it is changed (for example, if it is an Array).

DataSets müssten eigentlich automatisch refreshed werden, wenn sich da was ändert... Vieleicht brauchst du ein AcceptChanges oder so... Wenn du eine Lösung gefunden hast, wäre ich froh, wenn du diese hier präsentieren würdest 🙂

Gruss,
.unreal

03.05.2006 - 09:09 Uhr

Original von Jacyrio
Hallöchen.

Ich hät da mal 4 kleine Fragen zum DataGrid:

  1. Kann man die größen der Spalten definieren? Das heißt, ich hab zwei Spalten, möchte das die eine (weil da nur ne 2 Stellige Zahl drin steht) etwas kleiner ist, die andere dann den Rest ausfüllt (gibts auf nem PDA Bildschirm aus). Und ich will noch mehr Spalten (weil ich die Werte für nen SQL Befehl benötige) einfügen, die ich dann aber unsichtbar machen will (also größe 0 sozusagen) aber ich die Werte trotzdem verwenden kann.

  2. Kann ich eine Eigenschaft / Einstellung machen, dass man als User die Zeilen/Spaltengrößen nicht mehr manuell verändern kann? Im Moment kann ich die größe noch per Stift kleiner bzw. größer machen, das ist eigentlich schlecht.

  3. Gibt es die Möglichkeit, wenn ich auf eine Zeile klicke und danach auf nen Button "Bearbeiten", dass ich die Werte der Zeile auslesen und verwenden kann? Bräuchte sie, wie oben geschrieben, für einen SQL Befehl.

  4. Ich müsste bei jedem aufruf der Tabelle, die Tabelle aktuallisieren, d.h. ich will möchte die Tabelle clearen bevor ich sie aufrufe, weil sonst werden neue D
    3.atensätze ja ständig unten dran gepackt und das ist (bei meinem Programm) nicht der Sinn der Sache

Danke für die Hilfe im Voraus 🙂

  1. Ja, DataGridColumnStyles -> typische dokufrage
  2. Ja, weiss nicht ob auf datagrid selber oder im columnstyle -> doku
  3. prinzipell kannst du das schon machen, das datagrid stellt dir viele funktionen zu verfügung -> doku
  4. was versteht du mit "jedem aufruf der tabelle"? die tabelle kannst du sehr einfach "refreshen", dazu musst du nur die zugrunde liegende datasource refreshen

Gruss,
.unreal

02.05.2006 - 21:29 Uhr

Hi Herbivore

Diesen Vorschlag habe ich vorhin mit google gefunden, klappt auch nicht:


lbItems.DataSource = _template.Placeholder.Keys;

An unhandled exception of type 'System.Exception' occurred in system.windows.forms.dll

Additional information: Complex DataBinding accepts as a data source either an IList or an IListSource

Ist ja auch logisch. Aber wie realisier ich ein simple DataBinding? Mit Listbox.DataBindings.Add wüsst ich nicht auf was ich binden sollte. Items ist ja readonly...

Grrr, warum hab ich nur mein Buch auf der Arbeit vergessen 😠

.unreal

02.05.2006 - 19:33 Uhr

Currencymanager.Refresh()

02.05.2006 - 19:03 Uhr

Guten Abend

Ich habe ein kleines Problem. Kurz zur Situation: Mein Programm soll in einem Template alle {{Platzhalter}} erkennen. Im Gui sollen anschlhiessend alle diese Platzhalter in einer Listbox erscheinen. Für jeden Platzhalter kann ein Wert gesetzt werden, und anschliessend wieder als eine neue Datei gespeichert werden.

Die Logik habe ich in einer Klasse namens Template realisiert, das war mit einer Hashtable überhaupt kein Problem. Alle gefundenen Platzhalter werden in einer Hashtable gespeichert, wobei der Key der name des Platzhalters ist, und Value der "richtige" Wert.


	public class Template
	{
		private string _template;
		private string _parsedTemplate;
		private Regex _rgxPlaceholders = new Regex(@"\{\{(?<name>\S+)\}\}");
		private Hashtable _placeholders;

		//....

		public void Replace()
		{
			_parsedTemplate = _rgxPlaceholders.Replace(_template, new MatchEvaluator(ReplacePlaceholder));
		}

		private String ReplacePlaceholder(Match m)
		{
			return _placeholders[m.Groups["name"].Value].ToString();
		}
	}

Wie man im Code sieht, ist es sehr bequem, mittels der Hashtable die Platzhalter mit den gewünschten Texten zu ersetzen. Nur würde ich nun gerne die gefundenen Platzhalter (Keys der Hashtable) in einer Listbox, bzw. den Value der Hashtable in einer Textbox mittels Databinding anzeigen, und dem Benutzer die Möglichkeit zu geben, die Platzhalter zu füllen. Anscheinend geht Databinding nicht mit Hashtables 🙁

Meine Alternative wäre alles z.B. in eine ArrayList zu packen, und zur "Suche" des richtigen Eintrages mit dem IComparer Interface arbeite. Bevor ich zu dieser Alternative greife, würde es mich wunder nehmen, ob es mit einer Hashtable wirklich nicht möglich ist, oder ob ich nur was übersehen habe.

Danke für eure Hilfe & Gruss,
.unreal

28.04.2006 - 15:55 Uhr

Original von eddieromm
Ich glaube ich muss den zu druckenden Text umwandeln. Aber wie?
mfg

Guck MSDN, da hats Beispiele, wie man Druckt! Grundsätzlich hast du eine weisse Fläche, und musst da drauf zeichnen, ist nicht wirklich schwierig, nur mühsam =)

Guckst du PrintDocument, PrintDocument.PrintPage, PrintPageEventArgs.Graphics, Font usw.

Was klappt eignetlich nicht? Hast dus überhaupt schon versucht? Schreib doch hin, was du gemacht hast, und wo genau dein Problem ist.

.unreal

28.04.2006 - 08:08 Uhr

warum nennst du deine pks unterschiedlich? bei mir heisst der pk immer id

27.04.2006 - 11:45 Uhr

Hi Little_Bird

Guck ma in die Propertys/AssemblyInfo.cs

Gruss,
.unreal

26.04.2006 - 12:12 Uhr

Hallo Herbivore, Svenson & IgG

Ich danke euch allen drei für eure Antworten. Richtig toll, was man hier für professionelle Antworten kriegt! Das hilft mir super weiter! Danke!

Original von herbivore

Sorry dass ich nochmals nachhacke,
Nachhacken möchte ich mir verbitten, aber das du nachhakst, ist ok. 🙂

herbivore

wollte es noch editieren, dachte aber "das sieht doch niemand" erwischt herbivore, the all seeing eye 😉

.unreal

edit: danke für die Links, sind gut!

26.04.2006 - 11:19 Uhr

Original von herbivore
Hallo .unreal,

Darf ich dich Fragen, warum du View und Controller "normalerweise" nicht trennst? Was ist den Abnormal, bzw. wann trennst du View und Controller?
wenn ich ein Lehrbuchbeispiel programmiere 🙂

herbivore

Warum nur dann? Ist es zu aufwendig? Bringt es zuwenig oder unnütze Vorteile? Wenn du nur Lehrbuchbeispiele mit Controller programmierst, dann müsste es ja eigentlich besser sein diese zu trennen und der Grund für das auslassen des Controllers wären wegen knappen Ressourcen? Sorry dass ich nochmals nachhacke, aber die Frage ist mir noch nicht genug beantwortet 🙂 Ich finde es sehr interessant in andere Programmierstiele zu sehen, da lernt man immer wieder neue Tricks. Zudem muss ich mir überlegen, wie ich es an meiner Abschlussprüfung programmieren soll.

Gruss,
.unreal

26.04.2006 - 10:41 Uhr

Hi Herbivore

Danke für deine schnelle Antwort. Ich dachte mir schon, dass es so ist, wollte aber auf nummer sicher gehen 🙂

Darf ich dich Fragen, warum du View und Controller "normalerweise" nicht trennst? Was ist den Abnormal, bzw. wann trennst du View und Controller?

Gruss,
.unreal

26.04.2006 - 10:37 Uhr

Hallo IgB

Ich glaube du hast meine Frage nicht ganz verstanden: Klar kann ich im View das Model immer über den Controller ansprechen. Trotzdem wäre es aber möglich, auf das Model direkt zuzugreifen, was mir überhaupt nicht gefällt.

Das kommt mir vor, als ob man alle Felder public deklariert, jedoch beim Zugriff von aussen sich sagt "das darf ich nicht, darum muss ich ein Property verwenden.". Man deklariert Felder private, damit es unmöglich wird.

Gruss,
.unreal

26.04.2006 - 10:23 Uhr

Hi maik

Drucken geht mit der System.Drawing.Printing.PrintDocument Klasse. In der MSDN-Doku findest du Beispiele.

Die Schriftarten musst du nicht in die Applikation einbinden. Schau dir dazu die System.Drawing.Font Klasse an. Die Schriftarten gehören alle in den Systemordner %WIN_DIR%\Fonts

Gruss,
.unreal

26.04.2006 - 10:14 Uhr

Hallo Community

Ich habe eine Frage bezüglich MVC. Code sagt mehr als tausend Worte 🙂


    class View
    {
        private Controller _control;
        private Model _model;

        public View()
        {
            _model = new Model();
            _controller = new Controller(_model);

            _model.FieldChanged += new EventHandler(_model_FieldChanged);
        }

        private void _model_FieldChanged(object sender, EventArgs e)
        {
            //...
        }

        private void Foo()
        {
            _control.SetField("morgenstund hat gold im mund"); // das ist oke, da über controller

            _model.Field = "bla"; // dass will ich unterbinden, Field sollte eigentlich
                                  // nur über den Controller geändert werden können.
        }
    }

    class Controller
    {
        private Model _model;

        public Controller(Model model)
        {
            this._model = model;
        }

        public void SetField(string value)
        {
            if(value.Length > 2)
            {
                _model.Field = value;
            }
        }
    }

    class Model
    {
        private String _field;
        public event EventHandler FieldChanged;

        public String Field
        {
            get { return _field; }
            set { _field = value; /* raise event */ }
        }
    }

Der Controller und das View müssen beide dasselbe Model kennen. Wenn ich es implementiere wie im obigen Code, dann kann ich im View problemlos direkt auf die Properties vom _model zugreifen, jedoch will ich, dass dies nicht möglich ist, resp. jegliche Interaktionen müssen über den Controler geschehen. Wenn jedoch das View das Model nicht kennt, müsste der Controller die Events vom Model abonieren und anschliessend weiterleiten, was weder Übersichtlich noch Aufwandsakzeptabel (cooles wort 😉) ist.
Gibt es dazu eine Lösung, oder ist das bei MVC einfach so? Ich deklariere Felder auch als Private, dass es schon erst gar nicht möglich ist, auf diese zuzugreifen.

Vieleicht habe ich auch etwas sehr grundlegendes beim MVC-Design-Pattern noch nicht verstanden, wenn das der Fall ist, freue ich mich auf Links/Tipps usw. 🙂

Gruss,
.unreal

23.04.2006 - 19:17 Uhr

ganz nebenbei: Wird eine Installationsdatei vom web "geöffnet", wird diese auch zuerst heruntergeladen (in ein Temporäres verzeichnis). Der Begriff "öffnen" ist nicht 100% korrekt =)

Gruss,
.unreal

12.04.2006 - 16:04 Uhr

Original von progger
Der Link zu SourceForge:
>
.
Ist übrigens das von WeifenLuo, also das, das dr4g0n76 gemeint hat. Ist wirklich toll das Teil.

Hi Progger

Ich habe diese DockPanelSuite ausprobiert. Ich brauche dieses Autohide-Dock-dingsbums wie beim Solution Explorer(keine Ahnung wie man das nennt). Die Dockingsuite bietet dieses Feature an, allerdings für mich nicht zufriedenstellend. Windows mit DockingStyle.Float "übermalen" das AutoHideTab 🙁 Zudem gibt es keine Möglichkeit, den Floatingwindows die normale Titelzeile zu geben (mit dem grossen schliessen/maximieren/minimieren). Sowas brächte ich 🙂

Gruss,
.unreal

12.04.2006 - 10:05 Uhr

http://dotnetmagic.com/

Sieht lecker aus, hab aber noch keine Erfahrungen damit. Kannst dir ja selber mal die Demo installieren.

Gruss,
.unreal

12.04.2006 - 08:50 Uhr

loginname/computer

10.04.2006 - 16:34 Uhr

Hi GNewmann

Zeig mal ein Stückchen Code.

Gruss,
.unreal

10.04.2006 - 15:47 Uhr

Hi GNewman

Ich würde sowas nicht über Enumeratoren lösen.

Über listBox.SelectedItems kommst du an die ausgewählten Objekte ran. Sowas wäre eine Typische Frage für die Doku! Der Name des Property sagt ja schon alles.

Gruss,
.unreal

10.04.2006 - 13:57 Uhr

Hi GNewmann

Ich verstehe dein Problem nicht ganz. Setzte deine DataSource, den ValueMember auf die Id und den DisplayMember auf deinen Landname. Nun kommst du über listBox.SelectedValue automatisch auf die ID des Landes, wobei der User die DisplayValue sieht, sprich den kompletten Namen.

Gruss,
.unreal

10.04.2006 - 12:01 Uhr

Super Idee herbivore!

FireFox > all 🙂

07.04.2006 - 08:50 Uhr

Gibt es überhaupt eine solche funktion à la AcceptChanges()?

06.04.2006 - 14:11 Uhr

Hallo

Ich spiele gerade einwenig mit DataBinding rum, damit ich es anschliessend in einem Projekt verwenden kann, und habe eine Frage.
Leider muss ich mit VB.NET arbeiten, da aber die Klassen diesselben wie bei C# sind, habe ich die Frage trotzdem in diesem Forum gestellt.


private source() As String = {"eins", "zwei", "drei"}

txtFirstName.DataBindings.Add(New Binding("Text", source, Nothing))

so habe ich ein Binding hergestellt. Wenn ich nun source ändere (z.B. in einem Button Click):


source(0) = "0"
source(1) = "1"
source(2) = "2"

dann wird die textbox nicht aktualisiert, erst wenn ich z.b die position des BindingManagers verändere, erscheinen die Zahlen. Habs auch schon mit EndcurrentEdit() versucht, hat auch nicht geklappt.

Eigentlich dachte ich, dass das DataBinding selber die Forms updated, wenn ich die Quelle verändere, warum ist dies hier nicht der Fall?

Gruss,
.unreal

06.04.2006 - 13:42 Uhr

du kannst die dontnetmagic elemente auch im designer verwenden, musst sie lediglich hinzufügen

gruss,
.unreal

06.04.2006 - 12:15 Uhr

Es ist eher umgekehrt: du musst sagen (mit den ColumnStyles) welche Columns angezeigt werden.

Gruss,
.unreal

05.04.2006 - 15:18 Uhr

du musst invokerequired und invoke auf demselben objekt abfragen/ausführen

gruss,
.unreal

03.04.2006 - 14:38 Uhr

welcher programmierer will denn 94mal eine schleife durchgehen, obwohl das nicht nötig ist? Das leuchtet mir nun gar nicht ein. Ist getan, was getan werden muss, dann returnen, alles andere ist gebastel.

03.04.2006 - 11:13 Uhr

Hi motoermaik
Wie 2 Forms untereinander kommunizieren, hat herbivore mit einem Threadlink bereits erklärt. Ein weiteres Stichwort wäre DataBinding.

Gruss,
.unreal

03.04.2006 - 11:09 Uhr

ohne deinen Code angeschaut zu haben: String.Substring ist genau das, was deine Methode machen sollte!

Gruss,
.unreal

31.03.2006 - 15:45 Uhr

vi hat aber stil 🙂

31.03.2006 - 12:13 Uhr

Original von herbivore
Aber Regex ist einfach geil. 🙂

*schmunzel* genau so würde ich es auch beschreiben. mit regex bist du der könig im text-parsen 🙂

31.03.2006 - 12:07 Uhr

die "fenster" holen sich ihren lokalisierten-string auch aus einer resx datei, und in diese resx datei kannst du auch einen weiteren datensatz hinzufügen und per ressourcemanager drauf zugreifen.

gruss,
.unreal

30.03.2006 - 16:07 Uhr

Regex 🙂

30.03.2006 - 15:55 Uhr

spiel mal mit den Formeigenschaften localizable und language. VS bietet sogar im designer multlanguagesupport an!

gruss,
.unreal

30.03.2006 - 14:51 Uhr

Hi Fil

Das funktioniert auch mit dem - Operator! Ist eigentlich auch logishc, dass man einem Datum eine Zeitspanne abziehen kann, jedoch einer Zeitspanne kein Datum!

Gruss,
.unreal

30.03.2006 - 14:10 Uhr

Zeig mal den Code... Was ist denn bild.MainForm.pixel?!
Ich glaube du solltest dich zuerst mal ein bisschen mit den Grundlegenden Dingen von OOP beschäftigen, ansonsten ist es nur gebastel.

Gruss,
.unreal

30.03.2006 - 08:50 Uhr

hi herbivore & ikaros

das splitpanel gehht nicht, ich kann zwar die hintergrundfarbe beim splitpanel ändern, allerdings überdeckt dieses ding gleichzeitig die child-windows. mit dem splitter gehts, aber ich bin irgendiwe nicht zufrieden mit dieser lösung. mal schauen ob ich eine gutes gratis-control finde.

gruss,
.unreal

30.03.2006 - 07:54 Uhr

Hi

DateTime.Subtract liefert ein TimeSpan

Gruss,
.unreal

29.03.2006 - 23:29 Uhr

Original von Noodles

Original von boco25
ich steige auf Visual Studio 2005 um, wollte kurz fragen, ob bezuglich Excel sich was geändert hat?

Wenn Du auf die VSTO hinaus willst, ja. Da gibt es Änderungen in der Version 2.0.

Änderungen wäre untertrieben... da gibts haufenweise neue features 🙂

29.03.2006 - 15:41 Uhr

Hallo

Kann mir jemand sagen, wo die Icons, welche z.B. der MS Sql Enterprise Manager für Stored Procedures, Views etc. abgespeichert sind?

Gruss,
.unreal

29.03.2006 - 13:06 Uhr

Hallo Community

Ich designe eben ein GUI für eine Anwendung, und habe ne Frage.

Dieses Panel auf der Rechten seite ist momentan ein Panel (Für diesen Satz könnt ich mir gleich nen Orden verpassen). Nun möchte ich aber, dass man dieses Panel auch resizen kann (in der Breite), es soll aber immer Rechts gedockt bleiben.. Aber wenn ich nen Splitcontainer hinzufüge, dann habe ich diese dunke Fläche für die Child-Windows nimmer. Ich will nur in der Not auf nicht standard Controls zurückgreifen!

Kann mir jemand auf die Sprünge helfen?

Gruss,
.unreal

edit: die img tags funken nicht 🙁 url zum bild: http://www.codevision.ch/gui_draft.jpg

29.03.2006 - 10:50 Uhr

@"(?<key>\w+) = (?<value>\S+)"

Damit du alle Matches kriegst, musst du die Methode Matches (mit s am Ende) Verwenden, die liefert eine MatchCollection, mit der kannst du durch alle Matches durchiterieren.

Gruss,
.unreal

29.03.2006 - 10:25 Uhr

hi morcheba

die string-klasse liefert einige methoden, mit diesen kannst du rausfinden, ob z.b ein " vorhanden ist. ein beispiel wäre indexof, oder substring.

anstatt immer nachzufragen würdest du es lieber selbst versuchen, dieses problem ist einfach lösbar.

gruss,
.unreal

29.03.2006 - 09:37 Uhr

Original von IamTheBug
und ne windows api funktion die ich einfach mit demd ateinamen aufrufe gibts nicht?

ne, glaube ich nicht, aber du darfst sie gerne erstellen 🙂

29.03.2006 - 09:36 Uhr

Warum sagst du das nicht schon im ersten Post? 🙂

der regex wäre dann

@"Das ist ein Wert=\d+"

jetzt ist nur noch die Frage WAS du suchst. Wenn du die Zahl suchst, dann könntest du das \d+ gruppieren mit Klammern. Bsp:

@"Das ist ein Wert=(\d+)"

Gruss,
.unreal