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 Pain
Thema: Unendliche Parrallel Foreach schleife?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke, ich habe die Aufrufe als asynchron deklariert, damit scheint mein vorhaben auch ohne Parralel.Foreach zu funktionieren:


ITargetBlock<Account> CreateNeverEndingTask(Func<String>, CancellationToken, Task> action, CancellationToken cancellationToken)
        {
            // Validate parameters.
            if (action == null) throw new ArgumentNullException("action");

            // Declare the block variable, it needs to be captured.
            ActionBlock<String> block = null;

            // Create the block, it will call itself, so
            // you need to separate the declaration and
            // the assignment.
            // Async so you can wait easily when the
            // delay comes.
            block = new ActionBlock<String>(async now =>
            {
                // Perform the action.  Wait on the result.
                await action(now, cancellationToken).
                    // Doing this here because synchronization context more than
                    // likely *doesn't* need to be captured for the continuation
                    // here.  As a matter of fact, that would be downright
                    // dangerous.
                    ConfigureAwait(false);

                // Wait.
                await Task.Delay(TimeSpan.FromSeconds(2), cancellationToken).ConfigureAwait(false);
                // Same as above.


                // Post the action back to the block.
                block.Post(now);
            }, new ExecutionDataflowBlockOptions
            {
                CancellationToken = cancellationToken
            });

            // Return the block.
            return block;
        }
Welche Variante ist nun besser?

Thema: Unendliche Parrallel Foreach schleife?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke herbivore. Noch ein Frage, werden die "tasks" die via " task.Post(DateTimeOffset.Now);" "gepostet" werden Parallel verarbeitet oder sequentiell?
Edit: Sequentiell...

Ich weiß nicht wie mir das TPL Pattern bei meiner Herausforderung helfen soll. Da ich zwar eine "Endlosschleife" Hinbekommen habe, diese jedoch nicht parralel ausgeführt wird. Ich habe jetzt folgendes angedacht:

string[] files= new string[] { "test", "test1", "test2" };
            Parallel.ForEach(files, file =>
            {
                StartWork(file);
            });


static void StartWork(string fileUrl)
        {
            // Create the token source.
            wtoken = new CancellationTokenSource();

            // Set the task.
            task = (ActionBlock<String>)CreateNeverEndingTask(now => DoWork(now), wtoken.Token);

            // Start the task.  Post the time.
            task.Post(fileUrl);
        }

Aber ob diese Lösung viel besser ist als


Parallel.ForEach(Files, file =>
            {
                Thread t = new Thread(() =>
                {
                    // do stuff
                        Thread.Sleep(2);
                    }
                });
                t.Start();
            });

????

Thema: Unendliche Parrallel Foreach schleife?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

danke für die Antworten, ich hatte heute ein wenig Zeit mir das TPL Dataflow Pattern anzugucken. Ich habe jedoch noch einige Verständnis Probleme. Ich habe das Pattern aus dem Stackoverflow Forum übernommen jedoch verstehe ich noch nicht genau wie das Pattern angewendet wird zb in meinem Fall

static void StartWork(string fileUrl)
        {
            // Create the token source.
            wtoken = new CancellationTokenSource();

            // Set the task.
            task = (ActionBlock<DateTimeOffset>)CreateNeverEndingTask(now => CheckFile(fileUrl), wtoken.Token);

            // Start the task.  Post the time.
            task.Post(DateTimeOffset.Now);
        }

und dann für jedes file die Methode "StartWork" aufrufen? Meiner Meinung nach kann das nicht richtig sein, da "task" kein Array ist sondern nur eine einzelne variable und daher kein array verarbeiten kann? Ich habe noch etwas Probleme zu Verstehen in wie fern mir das Helfen soll. Ich habe verstanden, dass es über die Action Blöcke es besser ist "unendlich" Schleifen zu erstellen, jedoch bin ich mir nicht sicher ob ich einfach alle meine Aktionen(für alle files) an den task "posten" soll oder ob ich für jedes file ein neuen task benötige. Die files sollen nach Möglichkeit auch alle parrallel verarbeitet werden.

Gruß & Danke!

Thema: Unendliche Parrallel Foreach schleife?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

verarbeiten, und das muss dauerhaft passieren. Was wäre mit:

 Parallel.ForEach(Files, file =>
            {
                Thread t = new Thread(() =>
                {
                    // do stuff
                        Thread.Sleep(2);
                    }
                });
                t.Start();
            });

ich habe herausgefunden, dass das deutlich besser / schneller funktioniert?

Thema: Unendliche Parrallel Foreach schleife?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Ihr,
ich habe folgendes Problem. Ich habe eine Liste von Dateien die parrallel unendlich lange ausgeführt werden sollen.

quasi folgendes:

Parallel.ForEach(Files, file =>
            {
                while (true)
                {
                   // do stuff
                }
            });
leider bin ich mir dabei ziemlich sicher, dass dann das Threading nicht mehr richtig funktioniert, da der Thread ja dauerhaft in der while schleife hängt.

Was meint ihr? Gibt es alternativen? Für mich wäre eine alternative die Logik eine eigene Executable auszulagern und diese dann 250x mal zu starten, und diese beinhalten dann eine while(true) schleife . Ich hätte es aber eigl. lieber in einer Applikation.

Thema: Bass ermitteln Via Frequenz und Magnitude, Titel unabhängig
Am im Forum: Grafik und Sound

das problem ist das ich bei house titeln fast dauerhaft bass ermittel was aber nicht richtig ist, ich möchte ja nur die peaks herausfinden. Hintergrund ist das ich versuche eine Lichtorgel zu basteln und dafür brauche ich nur die Bass peaks.

Thema: Bass ermitteln Via Frequenz und Magnitude, Titel unabhängig
Am im Forum: Grafik und Sound

Hallo ihr,
ich bin nun seit über 2 Wochen dabei einen Weg zu finden um via einer FFT mit den aktuel Wave Frequenz Daten herauszufinden ob zurZeit ein Beat(bzw Bass) ertönt oder nicht. Ich finde einfach keinen erdenklichen weg. Wenn ich die Werte absolut mache (ich errechne den dezibel wert) kommt es bei einigen Titeln hin, bei einigen ist jedoch der Bass etwas leiser (da der Titel auch leiser ist) und dann schlägt meine Methode nicht zu. Bei laufender Mittelwert bildung klappt es leider auch nicht so richtig. Eventuell habt ihr ja eine tolle Idee?

Thema: Tastendruck mit alt/ctrl/shift key an andere Anwendung schicken
Am im Forum: GUI: Windows-Forms

da das Programm minimiert laufen soll, kann das "SendKeys"? ich möchte kein Send To Foreground benutzen.

Thema: Tastendruck mit alt/ctrl/shift key an andere Anwendung schicken
Am im Forum: GUI: Windows-Forms

Hi,
danke erstmal, eigentlich müsste es dann doch so funktionieren?

Keys key = Keys.Control | Keys.F;
IntPtr scanCode = MapVirtualKey((uint)key, 0);
PostMessage(handle, WM_KEYDOWN, (IntPtr)key, scanCode);
PostMessage(handle, WM_KEYUP, (IntPtr)key, scanCode);

doch das funkioniert leider auch nicht. Der in halt von scanCode ist 0.

Thema: Tastendruck mit alt/ctrl/shift key an andere Anwendung schicken
Am im Forum: GUI: Windows-Forms

Hey ihr,
ich versuche an mein Notepad automatisch die suche zu öffnen (strg+f). Jedoch kommt bei meinem Notepad nichts an. Wenn ich nur "Keys.F5" verwende schreibt er ganz normal die aktuelle Zeit ins Notepad. Wo liegt mein Fehler?

 [DllImport("User32.dll", EntryPoint = "PostMessage")]
        internal static extern int PostMessage(IntPtr handle, uint msg, IntPtr wParam, IntPtr lParam);

        [DllImport("User32.dll", EntryPoint = "MapVirtualKey")]
        internal static extern IntPtr MapVirtualKey(uint uCode, uint uMapType);
        public static readonly uint WM_CHAR = 0x0102;
        public static readonly uint WM_KEYDOWN = 0x0100;
        public static readonly uint WM_KEYUP = 0x0101;
        public const uint WM_SYSKEYDOWN = 0x0104;
        public const uint WM_SYSKEYUP = 0x0105;


        private void button2_Click(object sender, EventArgs e)
        {
            Process[] p = Process.GetProcessesByName("notepad");
            if (p.Length > 0)
            {
                IntPtr handle = p[0].MainWindowHandle;

                Keys key2 = Keys.Control;
                Keys key = Keys.F;
                IntPtr scanCode = MapVirtualKey((uint)key, 0);
                IntPtr scanCode2 = MapVirtualKey((uint)key2, 0);
                PostMessage(handle, WM_SYSKEYDOWN, (IntPtr)key2, scanCode2);
                PostMessage(handle, WM_KEYDOWN, (IntPtr)key, scanCode);
                PostMessage(handle, WM_KEYUP, (IntPtr)key, scanCode);
                PostMessage(handle, WM_SYSKEYUP, (IntPtr)key2, scanCode2);
            }
        }

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

Das habe ich bereits versucht, meine dll taucht in den Modulen von dem Process "Notepad" nicht auf. Ich kann jedoch verststellen das der Pfad der dll in den address speicher geschrieben wurde und sich der Process um 40kb erweitert, was genau der größe meiner DLL entspricht.

EDIT:

Kann es sein das deswegen nichts passiert weil die DLL (welche ich injecten möchte) eine 32Bit dll ist und Meine Aplication und das Notepad 64bit sind?

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

hier der inhalt der c++ dll:

#include "windows.h"

void InjNachricht()//der erstellte Thread
{
    MessageBox(0, "Siehe da! Es klappt :P", " Whohoo", 0);//4. Eine Message Box
}

int WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved)//1. Beim öffnen der Dll wird diese funktion ausgeführt
{
    if(reason==DLL_PROCESS_ATTACH)//2. Falls der Grund des Aufrufes der DllMain-Funktion das Anhängen an ein Prozesses ist..
    {
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE) InjNachricht, 0, 0, 0);//3.erstelle einen SubProzess, der die übergebene Funktion ausführt
    }
    return true;
}

auch danke für deine hinweise, den pfad hatte ich bereits geändert auch dies hatte kein effekt. Habe als OS Win7, 64Bit. Mein Notepad ist auch eine 64 bit anwendung.

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

hm, ich bekomme auch mit deinem beispiel die dll nicht injected. Ich habe nun mal geguckt was mit dem Process passiert, dieser wird jedesmal wenn ich injecte um 40kb größer, finden kann ich die dll jedoch trotzdem nicht mit dem Process Explorer. Ich bin langsam echt verzweifelt. Muss ich die Dll nach dem injection noch aufrufen? Ich bekomme beim CreateRemoteThread(..) eine int wert zurück, dh würde bedeuten, dass die dll injectect wurde. Wieso verdammt nochmal wird nur einfach nichts ausgeführt?

Vielen Dank

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

Hey,
vielen Dank für diesen Hinweis, leider hat auch hinzufügen eines debug priviliges nichts an dem Problem geändert. Gehe ich der richtigen annahme, wenn ich die dll injecte, dass die dll in den Process Modulen auftauchen muss? wenn ja, dann klappt nichteinmal die injektion.

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

Danke für die hilfe. Ich weiß das .net nicht dfie perfekte wahl ist. Diese Sprache wird nur bei uns in der Firma verwendet und daher bin ich gezwungen zumindest den Hauptteil in c# zu schreiben. Ich benutze überhaupt keine Pointer, wieso sollte ich also "unsafe" code benutzen, ist das wirklich notwendig, ich bin mir nicht sicher ob es selbst mit unsafe code funktionieren würde? Das ganze soll dazu dienen im Wordpad einige zusätzliche Funktionen einzubauen (nichts illigales..)

Vielen Dank!

Edit:
habe meine beiden klassen + alle variablen und imports als unsafe deklariert, dennoch funktioniert es nicht, injeziert wird evtl aber es passiert nichts.

Thema: DLL Injection / DLL Hook: Zusätzliche Funktionen in Wordpad einbauen
Am im Forum: Rund um die Programmierung

Hey ihr,
ich versuche nun vergeblich seit 3 Tagen eine simple (native) dll in mein Notepad zu injektieren. Diese Dll soll und gibt eine MessageBox aus sobald sie injiziert ist. Das ganze habe ich basierend auf dem Tutorial von diesem Forum ausprobiert: [Ger-TuT] Code/Dll Injection mit dem Tool winject17b ausprobiert. Mein Problem ist das mein Code zwar die dll injeziert (das vermute ich zumindest) jedoch anschließend nichts passiert (es soll eine MessageBox ausgegeben werden).
Dies ist mein Code:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace test2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        [DllImport("kernel32")]
        public static extern IntPtr CreateRemoteThread(
          IntPtr hProcess,
          IntPtr lpThreadAttributes,
          uint dwStackSize,
          UIntPtr lpStartAddress, // raw Pointer into remote process  
          IntPtr lpParameter,
          uint dwCreationFlags,
          out IntPtr lpThreadId
        );

        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(
            UInt32 dwDesiredAccess,
            Int32 bInheritHandle,
            Int32 dwProcessId
            );

        [DllImport("kernel32.dll")]
        public static extern Int32 CloseHandle(
        IntPtr hObject
        );

        [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
        static extern bool VirtualFreeEx(
            IntPtr hProcess,
            IntPtr lpAddress,
            UIntPtr dwSize,
            uint dwFreeType
            );

        [DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true)]
        public static extern UIntPtr GetProcAddress(
            IntPtr hModule,
            string procName
            );

        [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
        static extern IntPtr VirtualAllocEx(
            IntPtr hProcess,
            IntPtr lpAddress,
            uint dwSize,
            uint flAllocationType,
            uint flProtect
            );

        [DllImport("kernel32.dll")]
        static extern bool WriteProcessMemory(
            IntPtr hProcess,
            IntPtr lpBaseAddress,
            string lpBuffer,
            UIntPtr nSize,
            out IntPtr lpNumberOfBytesWritten
        );

        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr GetModuleHandle(
            string lpModuleName
            );

        [DllImport("kernel32", SetLastError = true, ExactSpelling = true)]
        internal static extern Int32 WaitForSingleObject(
            IntPtr handle,
            Int32 milliseconds
            );

        public Int32 GetProcessId(String proc)
        {
            Process[] ProcList;
            ProcList = Process.GetProcessesByName(proc);
            return ProcList[0].Id;
        }

        public void InjectDLL(IntPtr hProcess, String strDLLName, Process proc)
        {
            IntPtr bytesout;

            // Length of string containing the DLL file name +1 byte padding  
            Int32 LenWrite = strDLLName.Length + 1;
            // Allocate memory within the virtual address space of the target process  
            IntPtr AllocMem = (IntPtr)VirtualAllocEx(hProcess, (IntPtr)null, (uint)LenWrite, 0x1000, 0x40); //allocation pour WriteProcessMemory  

            // Write DLL file name to allocated memory in target process  
            WriteProcessMemory(hProcess, AllocMem, strDLLName, (UIntPtr)LenWrite, out bytesout);
            // Function pointer "Injector"  
            UIntPtr Injector = (UIntPtr)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");

            if (Injector == null)
            {
                MessageBox.Show(" Injector Error! \n ");
                // return failed  
                return;
            }

            // Create thread in target process, and store handle in hThread  
            IntPtr hThread = (IntPtr)CreateRemoteThread(hProcess, (IntPtr)null, 0, Injector, AllocMem, 0, out bytesout);
            // Make sure thread handle is valid  
            if (hThread == null || hThread.ToInt32() == 0)
            {
                //incorrect thread handle ... return failed  
                MessageBox.Show(" hThread [ 1 ] Error! \n ");
                return;
            }
            // Time-out is 10 seconds...  
            int Result = WaitForSingleObject(hThread, 10 * 1000);
            // Check whether thread timed out...  
            if (Result == 0x00000080L || Result == 0x00000102L || Result == 0xFFFFFFFF)
            {
                /* Thread timed out... */
                MessageBox.Show(" hThread [ 2 ] Error! \n ");
                // Make sure thread handle is valid before closing... prevents crashes.  
                if (hThread != null)
                {
                    //Close thread in target process  
                    CloseHandle(hThread);
                }
                return;
            }
            // Sleep thread for 1 second  
            Thread.Sleep(1000);
            // Clear up allocated space ( Allocmem )  
            VirtualFreeEx(hProcess, AllocMem, (UIntPtr)0, 0x8000);
            MessageBox.Show(proc.Modules.Count.ToString());
            // Make sure thread handle is valid before closing... prevents crashes.  
            if (hThread != null)
            {
                //Close thread in target process  
                CloseHandle(hThread);
            }
            // return succeeded  
            return;
        }  

        private void button1_Click(object sender, EventArgs e)
        {
            String strDLLName = @"Message Box.dll";
            String strProcessName = "notepad";

            Int32 ProcID = GetProcessId(strProcessName);
            Process proc = Process.GetProcessById(ProcID);
            
            if (ProcID ≥ 0)
            {
                IntPtr hProcess = (IntPtr)OpenProcess(0x1F0FFF, 1, ProcID);
                if (hProcess == null)
                {
                    MessageBox.Show("OpenProcess() Failed!");
                    return;
                }
                else
                {
                    MessageBox.Show(proc.Modules.Count.ToString());
                    InjectDLL(hProcess, strDLLName, proc);

                }
            }
        }
    }
}


ich habe bereits viele tutorials gelesen, weiß jedoch nicht wieso ich eine simple dll nicht in das notepad injeziert bekomme. Es würde mich freuen wenn mir jemand sagen könnte wo mein Fehler liegt. Im Anhangf befindet sich noch die dll die ich injezieren möchte in mein Notepad.

Vielen Dank

Thema: Keyboard key gedrückt halten
Am im Forum: GUI: Windows-Forms

Guten morgen,
ich habe folgendes Problem, ich möchte einen Key simuliert gedrückt halten. Ich habe schon nach vielen Möglichkeiten gesucht wie zb. SendKeys.Send und keybd_event doch ich habe es mit beidem nicht hin bekommen einen key gedrückt zu halten, sodas im notepad beispielweise steht: "aaaaaaaaaaaaaaaaaaaaaaaa" und nicht nur 1x a. Leider habe ich bis jetzt noch keine lösung gefunden. Es darf nicht mehrmals der Key gedrückt werden sondern er soll gehalten werden. Ich finde bei google leider keine nützlichen Links mehr, evt könnt ihr mir ja helfen?

Thema: Array im Struct defenieren c#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

danke..
gibts irgendwo ein beispiel wo beschrieben wird wie man soetwas in einer klasse defeniert? Bzw kann mir das jemand erklären?
denke nichtd as soetwas eine grundlage ist...

Thema: Array im Struct defenieren c#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

o.O? versteh ich nicht o.O
gehts evt genauer?

Thema: Array im Struct defenieren c#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ist es irgenwie möglich in einem Struct ein Array zu defenieren?
Möchte beispielweise
in ein struct die id haben und dann noch einen namen aber der name soll ein array sein mit einem index von 0-14, das normale array defenieren funktioniert nicht :/


public string[] name = new string[100];

ergibt = cannot have instance field initializers in structs

public string[100] name;
geht natürlich auch nicht:
Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)

und dann hab ich vorhin noch ne std gegoogelt:

            [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 5)]
public string[] name;

bekomme ich aber wenn ichn breakpoint setze nen laufzeit error, außerdem hat das "vermutliche" array keinen index..

und

public string[] name;
geht zwar, nur hat das "array" kein index mehr...

naja evt wisst ihr noch was ich ausprobieren könnte

Thema: String ab einem buchstaben loeschen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

string test = "3birnen\Äpfel\r\n28hanfsamen";
int length2 = test.IndexOf("\n");

und was kommt raus?

length2 = -1

-.*

Thema: String ab einem buchstaben loeschen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

also ich habe via watin den inhalt einer tabelle von einer webseite in eine variable geschrieben:
bsp: "42 Äpfel\r\n90birnen "
bsp2: "3birnen\Äpfel\r\n28hanfsamen"

so nun folgendes, ich möchte nur das wissen, was hiter dem \n steht, ist es möglich das davor irgendwie heraus zu filtern?

Thema: sql abfrage gibt immer nur letzte reihe aus
Am im Forum: Datentechnologien

die antwort habe ich wohl gelesen nur hilft es mir nichts da ich trotzdem irgendwie was returnen muss und ich keine ahnung habe wo ich das return setzen muss und vorallem wie ich es schaffe das er alles returned so, dass ich per for schleife alle ergebnisse in eine varriable schreibe ohne das ich meine funktion sqlquerry verschmutze. Desweiteren weiß ich nicht ob das so generell rchtig ist, da ich möchte das zb in einer varriable nur der name von der reihe 1 steht und in varriable 2 username 2 usw
zb.

user= username von 1-x
useR_admin_rank = adminrank von 1-x usw
habe halt noch nie mit db abfragen garbeitet wo ich mehrere ergebnisse bekomme.

Thema: sql abfrage gibt immer nur letzte reihe aus
Am im Forum: Datentechnologien

            menu12 = 3;
            Int32 fields = 0;
            String row = "";
            MySqlDataReader reply;
            reply = sqlselect("SELECT user_nick, user_admin_rank, user_last_login, user_hwkey FROM admin_users");
            for (int z = 0; z < reply.FieldCount; z++)
            {
                row += reply.GetValue(z).ToString() + ", ";
                MessageBox.Show(row);
                fields++;

            }

funktion sqlselect:

        private MySqlDataReader sqlselect(string sql)
        {
            String row = "";
            MySqlConnection connection = new MySqlConnection(myConnectionString);
            MySqlCommand command = connection.CreateCommand();
            command.CommandText = sql;
            MySqlDataReader Reader;
            connection.Open();
            Reader = command.ExecuteReader();
            while (Reader.Read())
            {
                for (int mysql1 = 0; mysql1 < Reader.FieldCount; mysql1++)
                    row += Reader.GetValue(mysql1).ToString();
                
            }
            return Reader;
        }

wenn ich das ausführe gibt er mir in der msgbox immer nur die letzte reihe aus (aus der db), wie bekomme ich alle reihen ausgegeben?

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

Zitat von juetho
Löschen geht mit der for-Schleife; wegen der Indizes musst Du vom Maximum aus runter nach 0 gehen. Jürgen
aber nicht wenn ich auch noch buttons usw habe
für die anderen:


               int cnt = 0;
                foreach (Label i1 in lbls)
                {
                    if (i1 != null)
                    {
                        Controls.Remove(lbls[cnt]);
                        lbls[cnt].Dispose();
                    }
                    cnt++;
                }
                cnt = 0;

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

hmm ist es möglich die erstellten labels via foreach zu loeschen?

                foreach (Label i1 in lbls)
                {
                    Controls.Remove(lbls[i]);
                    lbls[i].Dispose();
                }

geht natürlich nicht da die foreach von 1-100 geht da ich Label mit einem index von 100 defeniert habe. ist es irgendwie möglich eine bedingung in die foreach zu geben sodass ich nur lbls[ (zb. 1-3) ] loesche?

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

siehe edit -_-* sry dafür..

Danke an alle, kann, falls nötig, geclosed werden

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

            for (i = menu123; i < menu12 + menu123; i++)
            {
                y += 20;
                //Instanz erzeugen
                lbls[i] = new Label();
                //Eigenschaften setzen u.ä.
                lbls[i].Parent = panel1;
                lbls[i].Text = "Hallo";
                lbls[i].AutoSize = true;
                lbls[i].Location = new Point(3, y);
                //Label zur Form hinzufügen
                //this.Controls.Add(lbls[i]); // überlüssig
            }

geht nicht = kein effekt, auch nach dem rausloeschen... ich weiß da ehrlichgesagt nimmer weiter :/.
Normalerweise müsste es(das label) ja in dem pannel sein ( in der mitte meiner form) nur es ist trotzdem immer in der form oben links in der ecke.

wie dumm kann man sein... sry

für die die genau so dumm sind wie ich -_-*

es muss so heißen:

            for (i = menu123; i < menu12 + menu123; i++)
            {
                y += 20;
                //Instanz erzeugen
                lbls[i] = new Label();
                //Eigenschaften setzen u.ä.
                lbls[i].Parent = panel1;
                lbls[i].Text = "Hallo";
                lbls[i].AutoSize = true;
                lbls[i].Location = new Point(3, y);
                //Label zur Form hinzufügen
                //this.panel1.Controls.Add(lbls[i]);
            }

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

            for (i = menu123; i < menu12 + menu123; i++)
            {
                y += 20;
                //Instanz erzeugen
                lbls[i] = new Label();
                //Eigenschaften setzen u.ä.
                lbls[i].Parent = panel1;
                lbls[i].Text = "Hallo";
                lbls[i].AutoSize = true;
                lbls[i].Location = new Point(3, y);
                //Label zur Form hinzufügen
                this.panel1.Controls.Add(lbls[i]);
                this.Controls.Add(lbls[i]);
            }
this.Controls.Add(lbls); geht nicht. labels werden alle erstellt, allerding nicht in dem panel sondern ganz normal in der form

Thema: [gelöst] erstellte labels wieder loeschen?
Am im Forum: GUI: Windows-Forms

sry 4 doppel post, das loeschen funtzt nun nur wie geht das mit dem panel? habe eins defeniert nur ich kann dort nicht reinschreiben