Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    110

    C# WPF selezionare Textbox creato da codice

    Ciao a tutti,
    nella mia applicazione WPF creo in base ad un item un certo di numero di stackpanel con orientamento orizzontale con un certo numero di textbox dentro.
    il textbox Ullage al suo textchanged mi calcola una stringa che vorrei visualizzare nel textbox a fianco, invece la visualizzo sempre nell ultimo textbox

    codice:
    
    
    codice:
    foreach (var item in cisterneFuel)
                {
                    #region ATZ
                    stackCisternaAtz = new StackPanel();
                    stackCisternaAtz.Orientation = Orientation.Horizontal;
    
    
                    NameScope.SetNameScope(stackCisternaAtz, new NameScope());
    
    
                    Label lblCisterna = new Label();
                    lblCisterna.Content = item;
                    lblCisterna.FontFamily = new FontFamily("Microsoft Sans Serif");
                    lblCisterna.MinWidth = 60;
    
    
                    TextBox txtTempCisterna = new TextBox();
                    txtTempCisterna.Text = "45°";
                    txtTempCisterna.FontFamily = new FontFamily("Microsoft Sans Serif");
                    txtTempCisterna.MinWidth = 50;
                    txtTempCisterna.FontSize = 16;
                    txtTempCisterna.HorizontalContentAlignment = HorizontalAlignment.Center;
                    txtTempCisterna.VerticalContentAlignment = VerticalAlignment.Center;
    
    
                    TextBox txtUllageCisterna = new TextBox();
                    txtUllageCisterna.FontFamily = new FontFamily("Microsoft Sans Serif");
                    txtUllageCisterna.MinWidth = 60;
                    txtUllageCisterna.FontSize = 16;
                    txtUllageCisterna.Name = "cist" + item;
                    txtUllageCisterna.HorizontalContentAlignment = HorizontalAlignment.Center;
                    txtUllageCisterna.VerticalContentAlignment = VerticalAlignment.Center;
    
    
                    //stackCisternaAtz.RegisterName("stackCisternaAtz",stackCisternaAtz);
                    txtUllageCisterna.TextChanged += TxtUllageCisterna_TextChanged;
                    txtUllageCisterna.LostFocus += TxtUllageCisterna_LostFocus;
    
    
    
    
                    txtMcCisterna = new TextBox();
                    txtMcCisterna.FontFamily = new FontFamily("Microsoft Sans Serif");
                    txtMcCisterna.MinWidth = 80;
                    txtMcCisterna.FontSize = 16;
                    txtMcCisterna.Name = "txtMc" + item;
                    txtMcCisterna.HorizontalContentAlignment = HorizontalAlignment.Center;
                    txtMcCisterna.VerticalContentAlignment = VerticalAlignment.Center;
                   }
    
    
    
    


    il codice sopra mi crea una sorta di tabella con i vari textbox.
    nel textchanged di txtUllage quando faccio txtMcCisterna.text = bla bla bla
    lo visualizzo sull'ultimo textbox mentre vorrei visualizzarlo nel txtMcCisterna a fianco del txtUllage nel quale ho scritto e avviato il textchanged.
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    ti converebbe crearti un personale ContentControl il quale contiene le tue due textbox, (rappresenta una riga dello stackpanel)
    all'interno del ContentControl mantieni il riferimento alle due textbox, di modo che al cambio di una (tramite evento)
    puoi impostare il testo che preferisci all'altra,

    questo sistema molto semplice, oltre a darti un codice più pulito, ti definisce una relazione tra i componenti.

    il fatto che ti scrive sempre nell'ultima textbox, è perchè uscito dal for, la textbox, contenuta nella variabile txtMcCisterna, sarà ovviamente l'ultima creata,

    un consiglio che ti posso dare e di modularizzare bene il codice, così facendo certi problemi scompariranno

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.