Oprettet fre. d. 06. august 2010 kl. 13:17:39

Sarsten
Sarsten (5.295 point. Point ude: 100)

Gantt chart

Hejsa eksperter

Jeg er ved at oprette et gantchart i wpf og har problemer med at styre de forskellige objekter problemet er at jeg dynamisk opretter objekter, og derefter tegner dem til mit chart når teksten i textfeltet er fjernet.

Men når jeg tilføjer flere objekter så er det den sidste denne event foregår ved, hvordan styrer jeg den så den ved hvilken det er jeg ændrer?

Her er koden der skal statisk oprettes 2 canvas for at compile.

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            AddOperation();
        }

        public int HeightOperation
        {
            get;
            set;
        }

        public int OperationCounter
        {
            get;
            set;
        }

        public TextBox NewOperation;
        public TextBox Start;
        public TextBox Stop;
        public ComboBox Next;
        public ArrayList List = new ArrayList();

        public void AddOperation()
        {
            NewOperation = new TextBox();
            NewOperation.Width = 100;
            NewOperation.Height = 20;

            Start = new TextBox();
            Start.Width = 60;
            Start.Height = 20;

            Stop = new TextBox();
            Stop.Width = 60;
            Stop.Height = 20;

            Next = new ComboBox();
            Next.Width = 100;
            Stop.Height = 20;

            NewOperation.Margin = new Thickness(20, (50 + HeightOperation), 0, 0);

            Start.Margin = new Thickness(130, (50 + HeightOperation), 0, 0);

            Stop.Margin = new Thickness(200, (50 + HeightOperation), 0, 0);

            Stop.MouseLeave += new MouseEventHandler(Stop_MouseLeave);
            Stop.TextChanged += new TextChangedEventHandler(Stop_TextChanged);

            for (int i = 0; i < List.Count; i++)
            {
                Next.Items.Add(i+1);
            }

            Next.Margin = new Thickness(270, (50 + HeightOperation), 0, 0);

            OperationCanvas.Children.Add(NewOperation);
            OperationCanvas.Children.Add(Start);
            OperationCanvas.Children.Add(Stop);
            OperationCanvas.Children.Add(Next);

            HeightOperation += 25;
            OperationCounter += 1;

            List.Add(OperationCounter);

            if (OperationCounter == 15)
            {
                button1.IsEnabled = false;
            }
        }

        void Stop_TextChanged(object sender, TextChangedEventArgs e)
        {
            Random ran = new Random();
            int Rand00m = ran.Next(0, 500);

            Rectangle rect = new Rectangle();
            rect.Height = 20;
            rect.Width = Rand00m;
            rect.ToolTip = "";

            //Rounded edges
            rect.RadiusX = 0.0;
            rect.RadiusY = 0.0;

            rect.Margin = new Thickness(20, (50 + HeightOperation), 0, 0);

            rect.Stroke = new SolidColorBrush(Colors.Black);
            rect.StrokeThickness = 1;
            rect.Fill = new SolidColorBrush(Colors.LightSteelBlue);
            rect.Visibility = Visibility.Visible;

            DrawCanvas.Children.Add(rect);
        }

        void Stop_MouseLeave(object sender, MouseEventArgs e)
        {
           
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            AddOperation();
        }
    }

Skrevet fre. d. 06. august 2010 kl. 14:09:57| #1

buzzzz
buzzzz (46.511 point)
ifyoudo.net
"Men når jeg tilføjer flere objekter så er det den sidste denne event foregår ved, hvordan styrer jeg den så den ved hvilken det er jeg ændrer?"

Hvad mener du med det her? Og hvad for en event? og hvad for et object?

Måske jeg bare er træt, men brug navne i stedet for "den og de" ... så undgår vi misforståelser :-)

mvh

Skrevet tor. d. 02. september 2010 kl. 18:09:36| #2

Sarsten
Sarsten (5.295 point)
Problem solved.

Skrevet tor. d. 02. september 2010 kl. 19:20:06| #3

buzzzz
buzzzz (46.511 point)
ifyoudo.net
Gerne en løsning, så andre kan få glæde af den ...

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Deployment på Windows Mobile 6.5

Oprettet den 9. februar 2012 kl. 13.59
schristensen giver 200 point for svar | Giv et svar »

Programmet fryser!!

Oprettet den 8. februar 2012 kl. 15.48
shemeri giver 60 point for svar | Giv et svar »

ifilter - crawler/ add-in

Oprettet den 8. februar 2012 kl. 15.37
sf giver 60 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Gør dig selv en tjeneste: Køb et ordentligt SD-kort

Der kan være meget stor hastighedsforskel på to umiddelbare ens SD-kort. Se her hvad du skal være opmærksom på, når du køber ekstra hukommelse til din mobil, tablet eller kamera.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Gratis flysimulator fra Microsoft

Den legendariske Flight Simulator fra Microsoft genopstår den 29. februar - og denne gang er spillet gratis.


Nyheder fra Computerworld

Teaser billede

Bank: Derfor er login uden NemID helt i orden

Der er ikke hold i påstanden om sikkerhedsproblemer i forbindelse med bankkunders login uden brug af NemID, lyder det fra Nykredit Bank.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger