Laden...
S
Schnueggel myCSharp.de - Member
Neustadt an der Weinstrasse Dabei seit 22.07.2007 54 Beiträge
Benutzerbeschreibung

Forenbeiträge von Schnueggel Ingesamt 54 Beiträge

20.06.2008 - 16:18 Uhr

position absolute sollte im ie 6 eigentlich funktionieren, fixed nicht das stimmt.

13.06.2008 - 15:38 Uhr

Ok schade, ich werd mich glaub auch mit 4px zufrieden geben,das ist genau die Rahmenbreite die bei XP angezeigt wird wenn man Irgendwelche Fenster vergrößert. Vielleicht kann ich es auch in diesem Sinne benutzen.

Ok, eben erst kapiert, ich glaub das ist was ich meinte.

So berechnet die Win32-Funktion AdjustWindowRect bzw. AdjustWindowRectEx...

13.06.2008 - 15:09 Uhr

Hab dein Code einfach Kopiert und er geht ^^, nur versteh ich halt nur Bahnhof und er macht mir jetzt immer eine Clientsize von -4 ich will in meinem Control aber nur eine differenz von ClientSize <-> Size von 1, geht das?

sorry das ich diesen alten Thread ncohmal raushole.

11.06.2008 - 20:50 Uhr

Wahrscheinlich wird es so sein. Wird wohl auch keiner Erfahrungsberichte groß geben können, weil es von vornherein , wohl eher ne Sackgasse ist. Die Berichte wo ich sonst noch gefunden hab waren schon älter, sagten aber so etwas ind er Art. dacht ich frag mal hier.

11.06.2008 - 19:36 Uhr

Hat mal wer eine WPF Anwendung auf einem Terminalserver getestet die etwa 30 mal am laufen ist? WPF rendert Text Bild usw ja mit der GPU, mit einer Fallbackoption auf die CPU. Kann mir irgendwie nicht vorstellen, das es noch vernünftig läuft wenn eine Applikation die visuelle Inhalte hat so oft gestartet wird über Thin Clients.
Gerade wo bei solchen Servern meist nicht an den CPUs gespart wird, wohl aber an der GPU. Falls da jemand Erfahrung hat wäre nett, wenn er mal berichten würde.

Danke 🙂

11.06.2008 - 11:34 Uhr

Ok danke dir. Werd ich dann wohl so machen müssen. Eine kleine rechnung halt immer vorweg.

11.06.2008 - 09:05 Uhr

Wollte mal fragen ob es möglich ist beim LinearGradientBrush nur den Start und Endpunkt zu ändern. Ich mache das momentan so das ich ein Brush Objekt erzeuge und das immer wieder mit new überschreibe, das nervt mich irgendwie. die Farben kann man ja auch ändern. der Brush hat die methode TranslateTransform , allerdings ist dann wohl kaum was gewonnen wenn ich eine Matrixtransformierung machen muss um das Rectangle zu ändern. In WPF gibt es ja Start- und Endpunkt neu angeben




LinearGradientBrush lgb = new LinearGradientBrush(rec,color[0],color[1]);
lgb.Linearcolor = color; 



Ich überschreib lgb halt immer wieder mit new.

09.06.2008 - 19:35 Uhr

Habt ihr Erfahrungen mit größeren Projekten bzw. Anwendungen?

Ich nicht!

Aber ich weiss nicht ob die größe eines Projekts sich an der Anzahl der Forms misst. Ich weiss nicht ob es überhaupt gut ist sehr viele Forms zu verwenden. Mir ist jetzt auch kein Programm bekannt das mich mit sehr vielen Forms erschlägt.
Ich versuche möglichst zu vermeiden viele Forms zu benutzen , ich hab damit immer nur unmut, liegt aber wohl auch daran das ich kein Profi bin.

Ich denke mal das eine Form GUI technisch kein Leichtgewicht ist, sie vorher zur instanzieren macht vielleicht Sinn. Ausser Arbeitsspeicher und Ladezeit am Anfang kostet das wohl auch nichts.

09.06.2008 - 12:56 Uhr

Und wenn das öffnen des Fenster im GUI Thread ist und nur die Hintergrundaktion in einem anderen, vielleicht geht es dann ja. Allein das Fenster öffnen muss ja nicht in einen eigenen Thread.

09.06.2008 - 12:38 Uhr

Du übergibst hier die Form selbst an das Control, das würde ich nicht machen, glaub nicht das das nötig ist. vermutlich


Startseite start = new Startseite(this);

Das Hier muss wenn du es so lassen willst in deinen Form-code, ich glaub du hast das wohl in die ButtonKlasse geschrieben.
den Keyevent dann bei der form adden.


private void Lieferservice_KeyDown(object sender, KeyEventArgs e) {
            if (e.KeyCode == Keys.F12) {
                Console.WriteLine("Taste F12 gedrückt");
                Controls.Remove(start);
                 //oder falls es in deiner ButtonKlasse stehen soll
                //this.Parent.Remove(this);

            }
        }

dispose() löscht das Element, bleib lieber bei remove. Kannst es dann wieder zurückholen bei Bedarf oder vielleicht reicht auch Visible = false;

*Edit Scheiss Groß- und Kleinschreibung 👅

09.06.2008 - 11:37 Uhr

Wahrscheinlich wird Form1 deine Hauptanwendung sein und Form2 innerhalb Form1 zur Laufzeit erzeugt. Wenn man eine Anwendung schliesst, schliessen sich auch alle ihre Komponenten. Entweder du machst aus Form2 eine eigene Anwendung die du in Anwendung 1 aufrufst oder du machst Form1 Visible false, glaub das sollte gehn

09.06.2008 - 11:28 Uhr

das control kann sich doch selbst löschen mit


meinControl.Dispose();

oder man kann aus die form in der das control ist mit Parent zugreifen



meinControl.Parent.Control.Remove(meinControl); // so wäre es noch nicht ganz verloren wie bei dispose

Versteh vielleicht nicht was du willst irgendwie, kommt mir sinnlos vor

08.06.2008 - 06:09 Uhr

Also Invalidate an den falschen Stellen führt bei mir immer zu flackern. Grad vorhin wieder gehabt. In der onpaint methode wird es wohl dazu führen das diese direkt nochmal angeleiert wird, falls invalidate() , das element dieser on paint methode neu zeichnen lässt, wird es wohl ein endloser kreislauf und sich das ganze hochschaukeln bis zum anschlag und es eben dann flackert. Invalidate macht ja nur dann ein Sinn denke ich, wenn das Programm an der Stelle sonst kein Invalidate machen würde oder Invalidate eines bestimmten Bereiches oder Elements oder ohne Childs usw. Aber wenns nu nicht mehr flackert ist ja auch gut.

08.06.2008 - 05:57 Uhr
  

this.ShowInTaskbar = false;

sollte dir helfen.

Standardmäßig dürfte aktiviert sein das das fenster mit dem Focus an der Front kämpft.

mit this.focus() oder this.BringToFront() kann man das ändern.

07.06.2008 - 09:42 Uhr

Dann kann der Weiter-Button ja einfach auf das dataobject zugreifen



protected override void OnButtonClick(Eventargs e)
{
   base.OnButtonClick(e);
   momentanes_usercontrol = dataObject.GetDataPresent(DataFormats.Serializable, true) as UserControl;
   
   panel2.Controls.Remove(momentanes_usercontrol);

}

So etwa denk ich kann es gehn, wenn es definitiv nur der eine Button sein kann der in dem Panel2 ist, kannst den ja auch direkt ansprechen dann weisst ja welcher es ist.

07.06.2008 - 09:28 Uhr

Ja hab gemerkt das Drag und Drop nicht so ohne ist wenn man mehr will als den Standard, ich bin jetzt wieder auf der Nummer mit OnMOuseMove und was solls es geht ^^. Dafür kann ich nach einem Tag nur mit drag und drop beschäftigen. Immerhin mit drag und drop events umgehen.

06.06.2008 - 20:23 Uhr

Tatsächlich war darin etwas enthalten was ich brauchen kann.



  protected override void OnGiveFeedback(GiveFeedbackEventArgs e)
        {
            base.OnGiveFeedback(e);
            if (e.Effect == DragDropEffects.Move)
            {
                // Show pointer cursor while dragging

                e.UseDefaultCursors = false;
                this.Cursor = new Cursor(cursIcon.Handle);
              

            }
            else e.UseDefaultCursors = true;
        }

Den code von Project möcht ich glaub eher nicht benutzen. da ich es vermeiden möchte die Win Api zu benutzen wo ich damit eh nicht umgehn kann richtig. ein Mitarbeiter von Microsoft bemängelt in dem Artikel auch den Code.

Er tauscht mir also den Cursor aus zentriert ihn aber, was natürlich scheisse ist ^^.
Hab auch aus den Kommentaren glaub rauslesen können das die Iconsize für den Mauszeiger begrenzt ist auf 250px, damit ist das natürlich gegessen. Trotzdem jede Menge gelernt wieder.

06.06.2008 - 17:16 Uhr

Es sieht so aus als lasse sich der Cursor beim Vorgang des draggens nicht überschreiben. Ich schaffe alle Cursor zu überschreiben mit dem Image nur den nicht beim draggen. Hab es testweise mal in alle event overrides geschrieben in der form sowohl auch im Steuerelement.

Jemand vielleicht eine idee woran es liegen könnte?

Bin mir nicht sicher ob der OnMouseDownEvent nicht hakt,der beginnt ja auf dem Steuerelement und feuert trotzdem weiter obwohl er beim Bewegen ja auf der Form ist irgendwann. Den OnMouseUp event auf der Form registriert das Programm dann nicht mehr, hab auch hier testweise eine MessageBox in beide MouseUp events geschrieben.

06.06.2008 - 13:03 Uhr

Vielleicht ginge aus auch das wenn du dein Usercontrol erzeugst es serialisierst , dann muss es nicht zwangsläufig genau das Usercontrol sein das an dieser stelle ist.



DataObject dataObject = new DataObject(DataFormats.Serializable, meinUsercontrol);


EDIT* ^^ geht nicht so, hab jetzt aber keine Zeit grad es umzudenken.

So kann denke ich jedes Usercontrol das in Panel2 landet wegeklickt werden. Naja irgendwie so ^^, bin mir jetzt auch nicht sicher. Falls es definitiv nimmer brauchst kannst auch disposen.

06.06.2008 - 08:31 Uhr

Das mit dem Margin macht mir Vs2008 ständig ich klick es immer weg, und bisschen später ist es wieder da. Aber danke für deine Antwort. Ich werd die Finger erst mal von WPF lassen, da wo meine Programme laufen,sind zum Teil ISA Slots noch im Trend, also Grakamäßig darf man da keine erwartung stellen. Von daher ist WPF tabu denke ich mal.

05.06.2008 - 17:02 Uhr

Hab das nur im Dreamweaver Cs4 gesehen und dachte ich möchte das auch so. wenn ich den Cursor austausche gegen ein halbtransparentes Bild, dann ist aber der Cursor ja weg, oder auf dem Image drauf als fake oder lieg ich da falsch?

05.06.2008 - 16:52 Uhr

Ich drage gerade Steuerelemente auf einer Form hin und her, klappt auch ganz gut.
Ich hätte gerne das er auch ein Ghost Image von dem Steuerelement mit der Maus mit geht, ist das möglich? Oder doch lieber das Element mit OnMouseMove pixelweise mitziehen.

04.06.2008 - 16:04 Uhr

Hab bisschen rumgespielt mit WPF um zu testen wie flexibel das ganze ist, eigentlich wollte ich noch skalieren, aber nuja ^^. Ich habe deshalb versucht ein Grid zu bewegen bei MouseDown und LeftMouseButtonDown. Funktioniert auch , aber nur beim ersten mal wenn ich die Maus loslasse und nochmal versuche huckelt es. Weiss jemand vielleicht wo mein Denkfehler ist. Hab wenig Ahnung von Xaml, kann vllt daran liegen.



    public partial class Window1 : Window
    {
        private bool movebool = false;
        private double mousex;
        private double mousey;
        private TransformGroup group;
        private TranslateTransform translate;
 

        public Window1()
        {
            InitializeComponent();
            group = new TransformGroup();
            translate = new TranslateTransform();

            group.Children.Add(translate);

            grid1.RenderTransform = group;
 
        }

 

        private void grid1_mousedown(object sender, MouseEventArgs e)
        {
            
            this.movebool = true;
            mousex = e.GetPosition(this).X;
            mousey = e.GetPosition(this).Y;
            this.button2.Content = mousex;

            


        }

        private void grid1_mouseup(object sender, MouseEventArgs e)
        {
            button2.Content = "hehehehe";
            this.movebool = false;
            this.button2.Content = e.GetPosition(this).X ;
           


        }

        private void grid1_mousemove(object sender, MouseEventArgs e)
        {
            if (movebool == true && e.LeftButton == MouseButtonState.Pressed)
            {
                translate.X = e.GetPosition(this).X - mousex;
                translate.Y = e.GetPosition(this).Y - mousey;
                this.button1.Content = e.GetPosition(this).X.ToString() + "-"+ mousex.ToString() ;
            }
            else
            {
                this.movebool = false;
            }
        }
    }



<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="390" Width="386" >
    <Canvas x:Name="test1" Height="358" Width="359" MouseMove="grid1_mousemove">
        <Grid Margin="88,112,0,0" Name="grid1"  MouseLeftButtonDown="grid1_mousedown" MouseLeftButtonUp="grid1_mouseup"  Height="100"  Background="Beige"  Width="200">
           
                <Button Margin="48,28,68,49" Name="button1">
                    <Button.Content>test</Button.Content> 
                </Button>
                <Button Margin="23,0,93,8" Name="button2" Height="36" VerticalAlignment="Bottom">Button</Button>
        </Grid>
    </Canvas>
</Window>

04.06.2008 - 09:41 Uhr

Die Meinungen sind hier grad so unterschiedlich, das es einem schwer fällt eine Entscheidung zu treffen.

Ich bastel grad an einem Programm wo der User Steuerelemente zur Laufzeit erzeugen kann und manipulieren kann(verschieben,vergrößern usw). Bin auf der Suche nach perfomanten Lösungen. Aber dieser Text in WPF ist alles andere als ein Benutzmichargument, vorallem wo ich das benötigen würde. Vielleicht doch lieber erbe von control , overide onPaint .. X(

02.06.2008 - 23:17 Uhr

der unterstützt wohl von Haus aus sql-injections 😄

17.04.2008 - 08:36 Uhr

Danke für die Antwort ^^ hab irgendwie keine mail bekommen das jemand geantwortet hat. Hab es in der zwischen Zeit mit rumprobieren alles herausgefunden, aber werd ich auf kurz oder lang wieder brauchen.

Danke

27.03.2008 - 12:31 Uhr

Hallo!

Gibt es irgendwo eine Erklärung zu den einzelnen Methoden oder Schnittstellen von Excel(97). Ich kann mir im Visualstudio Objektbrowser die zwar ansehen aber Erläuterungen gibt es da nicht.

Gruß

Christian

05.08.2007 - 12:23 Uhr

Hallo Leute ich wollte mal fragen ob es ein Buch für Client/Server Programmierung gibt. Englisch wäre ok. Weiss jetzt nicht genau unter was für ein Begriff das fällt.

Bei Amazon gibt es eines mit einer sehr schlechten Rezension, deshalb wäre mir ein englisches Recht , falls es eines gibt.

http://www.amazon.de/Client-Server-Programmierung-mit-Grundlagen-Anwendungen/dp/3836412144/ref=sr_1_1/302-0463996-1209661?ie=UTF8&s=books&qid=1186308522&sr=8-1

Konkret interessieren mich Socket-Verbindungen, für mein kleines OnlineSpiel .

oder löst man sowas mit ADO.Net?

😁

04.08.2007 - 10:05 Uhr

@LonleyPixel

🙂 ne keine Ahnung hab es nicht ausprobiert 🙂

Ich bleib aufjedenfall im if-Team glaub das ?-Team wird diese Saison absteigen. 🙂

Also in den zwei Büchern die ich habe stand bisher noch nichts von ? und ?? und auch sonst kam mir das noch nicht unter. Aber ich bin ja auch noch eine C# Neugeborenes 🙂

Hatte mich nur interessiert, weil ich sehr viel if benutze, aber wenns damit nix zu tun hat will ich euch das glauben. =)

03.08.2007 - 23:43 Uhr


if (a==b) lalala; else{tralala}





a=b ? lalala:tralala;

// so hab ich das jetzt mal verstand das es funktionieren soll


// 10 x mal einen Tastendruck gespart :)



Naja also leider macht mein VS-Express das ? nicht farbig und man muss logisch im Kopf zurück springen weil das ? Welches die Übergabe von zuvor zur Bedingung macht erst später kommt (^^). Während das if, das ganz links steht sofort die logik des darauf folgenden Teils ändert. Haarspalterrei, aber das es nicht farbig wird ist stört mich am meisten🙂 habs versucht in den Optionen zu ändern aber geht irgendwie nicht.

😁 8) 🤔

03.08.2007 - 17:47 Uhr

Ich kannte ihn nicht 🙂

ganz nett aber ich bleib bei if das sieht man besser 🙂

  1. 😜 😁
31.07.2007 - 16:07 Uhr

picturebox.invalidate()

denke ich mal. zumindest mach ich das damit.

29.07.2007 - 15:04 Uhr

Ok Danke , damit hab ich es hin bekommen

29.07.2007 - 14:01 Uhr

Hallo ich wollte fragen ob es möglich ist eine unbekannte Klassenreferenz an eine methode zu übergeben und die Methode für dann eine methode dieser Klasse aus, der methoden Name ist schon bekannt nur halt dieKlasse ist noch unbekannt.




  private string _picPath1 <T>(T _a, int _b) where T :class

        {

            return Directory.GetCurrentDirectory() + _a.picPath(_b);
        }

wenn ich mit where noch genauer einschränke macht es ja keinen sinn mehr weil dann kann ich gleich für jede mögliche Klasse eine if Bedingung schreiben.

28.07.2007 - 09:55 Uhr

Ja du hast recht die Frage war wirklich banal, ich hatte nur die ganze zeit einen ObjectreferenceError und war mir dann nicht mehr sicher ob das geht, weil hier in einem forumsbeitrag gestanden hat man könnte nur die Controls vererben.

28.07.2007 - 05:20 Uhr

Find veröffentlichen mit VS2005 scheisse zumindest bei mit mit der Expressversion.
Mein Programm läuft dann oft nicht richtig.

Du kannst mit Win Rar selbst entpackende exe dateien erzeugen, du kannst bei erweiterten optionen eine datei festlegen die danach ausgeführt werden soll (zb deine selbsterstellte Setup Exe). Du kannst dieser ein eigenes Icon geben..usw
Diese exe könnte dann auf ein Bootstrapper Setup verweisen , das du leicht mit der Anleitung von VS selbst erstellen kannst, das überprüft dann auch ob dotnetfx installiert ist oder nicht beim user und installiert es nach im Hintergrund.

Ein professionelles tool wäre Installshield 12 von Macrovision, aber da kostet glaube ich die kleinste Version 200 euro 🙂

Das wird glaube ich immer wieder gefragt,vielleicht sollte mal jemand eine einfache Setup.exe schreiben die auf dotnetfx überprüft und installiert und als Snippet zur Verfügung stellen. Mal sehen vllt mach ich es wenn ich nicht mehr so angefressen bin. 😜

28.07.2007 - 02:39 Uhr

ok danke! wirklich cool was man hier alles lernen kann 🙂. Werd das mit dem Override noch mal genau ausschecken.

27.07.2007 - 12:47 Uhr

Kanns jetzt nicht mehr testen, hab mir was anderes ausgedacht, aber wenn ich override mache,dann überschreib ich imm er den alten Handler für das letzte objekt? Dann hab ich nur ein Eventhandler für alle PictureBox die ich erzeugt hab, sprich ich kann nur die zu letzt erstellten dragn, nicht die schon auf dem Feld sind. Lieg ich da richtig?

27.07.2007 - 07:05 Uhr


public class token : PictureBox
    {
        Panel pan;

        public token(Panel panel): base()
        {
            pan = panel;
            this.MouseMove += new System.Windows.Forms.MouseEventHandler(this._MouseMove);
            this.MouseUp  += new System.Windows.Forms.MouseEventHandler(this._MouseUp);
        }
     

        private void _MouseMove(object sender, MouseEventArgs e)
        {
            if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
            {
               
                this.Location = pan.PointToClient(new Point(e.X, e.Y));
             

              
                
            }
           
        }

Problem ist wenn ich die Picturebox jetzt ziehe, zieht sie schlieren von dem Punkt wo ich starte mit dem dragen bis zum release punkt, machnmal verschwindet sie sogar einfach.

Vielleicht wird das alles zu oft abgefragt.

Kann man das was machen gegen?

27.07.2007 - 05:00 Uhr

Ist es möglich die Klasse Button zu vererben wenn man noch paar funktionen dazu haben will?

Ich würde gerne Buttons während der Laufzeit erstellen und mit Mouseventhandler versehen. musst nicht button sein könnte auch picturebox nehmen, muss aber was sein das ein Image darstellen kann.

8o

26.07.2007 - 20:13 Uhr

man müsste denke ich,wissen was für ein typ das object gewesen war bevor es zum object wurde.

26.07.2007 - 11:32 Uhr

geht sowas nicht mit unboxing wenn man weiss auf welchem list index was für ein typ liegt?


ArrayList meinArray;

ArrayList.Add(1);
ArrayList.Add(2.3);
ArrayList.Add(x[]);

int x = (int) meinArray[0];
double y = double meinArray[1];
z = (int[])meinArray[2];


so stell ich mir das vor 🙂 irgendwann muss etwas doch mal einen speziellen typ gehabt haben.

25.07.2007 - 23:54 Uhr

Sorry war mein Fehler

mySettings = new WindowsApplication1.Properties.Settings();

hat gefehlt

25.07.2007 - 23:20 Uhr

Irgendwie schaff ich nicht einen Wert an das ArrayListobjekt zu übergeben


              List<int> myList = new List<int>();
              myList.Add(1);
              mySettings.Options.Add(myList[0]);**
              mySettings.Save();

Beides geht nicht


              mySettings.Options.Add(1); **
              mySettings.Save();

** Beim Debuggen wirft er eine System.NullReferenceException

25.07.2007 - 22:43 Uhr

Naja ich habe hauptsächlich integer Arrays. Ich kann ein Integer array einfach an ein anderes weiter geben


int[] x;

x = anderesArray[];


Mit ArrayList kriege ich das nicht hin, ich glaube da müssen die anzahl der elemente und so übereinstimmen

Hab unter Scope User einen Wert namens Options vom Typ ArrayList erstellt.


class Test
{

  WindowsApplication1.Properties.Settings mySettings = null;

     public Test
       {
              ArrayList myAL = new ArrayList();
              myAL.Add(1);
              myAL.Add(2);
              myAL.Add(3);
              mySettings.Options = myAL;
        }

Ich werde versuchen mithilfe einer schleife die elemente zuübergeben, aber das ginge bei einem normalen Array halt einfacher.

List<T> sieht nach generic aus das hab ich nicht richtig kapiert ehrlich gesagt, ich weiss zwar was man damit so in etwa machen will, aber eine wirklich gute Erklärung hab ich weder in meinen Buch noch im Web gefunden.

25.07.2007 - 22:09 Uhr

WoW das ist ein sehr starkes feature, wirklich gut zu wissen.Nur wie kann man da ein normales Array ablegen ich kann zwar bei Typ durchsuchen System anwählen, aber das ist die Arrayklasse nicht enthalten. finde nur unter Collections ArrayList und das ist dann object bezogen.

25.07.2007 - 20:30 Uhr

Hallo! tut mir leid das ich euch dauernd mit so einfachen Sachen behellige, ich hab einen halben Tag an einer Sache gesessen und komme nicht weiter.

Ich hab mittlerweile sehr viele Klassen und 3 Forms. Ich hab es mitlerweile geschafft das man über einen Button in der jeweiligen Form auf die davor wechseln kann und zurück.

Jetzt möchte ich eine Klasse schaffen die nichts anderes macht alle die während der Laufzeit entstehenden informationen für alle beteiligten Prozesse speichert.

dazu wäre es nötig das ich irgendwie auf die Instanz zeige damit andere Klassen etwas übergeben können.

Bei den Forms hat das irgendwie geklappt, wobei ich hier zum Teil einfach Code von euch hier übernommen habe.

Es wird also Form1 erzeugt

in Form1 wird eine Instanz meiner Klasse Save erzeugt



public class Form1:Form
{
       Save _save0;

       public Form1()
         {
            Save x = new Save();
            _save0 = x;
            _save0.speicher = x; 
         }
}



public class Form2:Form
{
     private Save _save1;

      public Form2()
        {
         }

        public Save speicher
        {
            set { this._save1 = value;}
            
        }
}

Das ganze geht nicht, weil ich ja auch nicht ganz durchsteige, bei den Forms hat das geklappt.

Ich könnte auch einfach alle zu speichernden Daten die in Form 1 entstehen beim, erzeugen von Form2 oder beim wechseln in das Form2fenster übergeben, dann müsste ich, wenn es von Form2 in Form3 geht alle Daten die ich brauche von Form 2 weiter geben an Form3 und dann alles nach Form4 und von Form4 geht es dann nicht mehr zurück. Ich hab dann aber wenn ich bei Form4 ankomme einen risiegen Haufen an Informationen von Form1 Form2 und Form3 zu übergeben. Deshalb wollte ich das auslagern und die ganzen Arrays und so weiter an eine Instanz der Klasse Save übergeben.

Ich habe schon fast alles Threads zum Thema Form1 zu Form2 gelesen;
auf Object referenz verweisen, ref und out, Clonen, Reflexionen( 🤔) usw finde nicht was ich brauche, verstehe es auch zu Teilen nicht. Das ist wohl eher das Problem.

24.07.2007 - 09:32 Uhr

Ok danke 😁

Ich werd ein Array nehmen, das wird reichen denke ich.

24.07.2007 - 05:21 Uhr

Hm 🙂 hab es jetzt selbst rausgefunden. Zumindest eine Lösung. Ich gehe mit selectedIndex in die die Bedingung.


  int x = Convert.ToInt32(this.dataGridView1.Rows[0].Cells["Points"].Value);

            //1.Equipment option



            if (checkedListBox1.SelectedIndex==0)
            {

                if (checkedListBox1.GetItemCheckState(0) == CheckState.Unchecked)
                {

                    this.dataGridView1.Rows[0].Cells["Points"].Value = x + equip0;
                    x += equip1;
                }
                else
                {

                    this.dataGridView1.Rows[0].Cells["Points"].Value = x - equip0;
                    x += equip1;
                }

            }
            if (checkedListBox1.SelectedIndex == 1)
            {

                if (checkedListBox1.GetItemCheckState(1) == CheckState.Unchecked)
                {

                    this.dataGridView1.Rows[0].Cells["Points"].Value = x + equip1;
                    x += equip1;
                }
                else
                {

                    this.dataGridView1.Rows[0].Cells["Points"].Value = x - equip1;
                    x += equip1;
                }

            }
             

😁
Aber jetzt vielleicht eine andere Frage.

ich habe mehre int variabeln namens equip0, equip1....

int equip0 = 3; z. Bsp.

und im Grunde ändert sich in jeder if funktion genau nur der index den ich .GetItemCheckState() mitgebe und die zahle an equip,die aber beide identisch sind bei jedem item. Kann ich equip0 irgendwie zusammen setzten, also equip +0. Das ich alles durch eine schleife laufen lassen kann, ich hab sehr viele Items in der Box.
Ein Stichwort dazu würde mir genügen 🙂 falls das geht.

24.07.2007 - 04:47 Uhr

So hallo da bin ich wieder, mit meinen Problemen.

Also folgendes ich habe eine Checklistbox für die ich den event Itemcheck abfange.
Soweit so gut.
Wenn ich jetzt auf ein Item der Checkbox klicke beginnt er damit zu behaupten das das erste Item unchecked ist und überspringt die If-Schleife, geht aber beim 2. Item das ja noch nicht gecheckt ist korrekt rein und handelt es ab.
Wenn ich jetzt das 2. Item Checke erkennt er den Check der noch im ersten Item ist korrekt.

Hatte auch schon mit


if(e.NewValue == CheckState.Unchecked)...


versucht aber geht nicht, und das bringt eh nix wenn mehrere Items in der Box sind und manche checked sind und manche nicht.
beim Debuggen zeigt mir aber e.NewValue sehr schön, das er denkt das Kästchen wäre unchecked 🙂


 private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
        {

            int x = points;

         
           


                if (checkedListBox1.GetItemChecked(0) == true)
                {

                    this.dataGridView1.Rows[0].Cells["Points"].Value = x + equip1;
                    x += equip1;
                }
         

Hab auch die Checkedlistbox nach dem befüllen durch eine Schleife laufen lassen , die alles unchecked, aber das hat auch nichts gebracht. Hab jetzt zig Stunden meines kostbaren Lebens an dieser Funktion vergeudet 🙂

Vielleicht wird der event beim ersten click schneller durchlaufen als er das check erkennt ?(