• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czyszczenie jednej grupy textbox za jednym zamachem ?

Aruba Cloud - Virtual Private Server VPS
+2 głosów
154 wizyt
pytanie zadane 10 kwietnia 2024 w C# przez roger10 Nowicjusz (180 p.)

Witam! Kiedyś to znalazłem teraz nie mogę. Potrzebuje pod WPF znaleźć polecenie które wyczyści części "textboxów". Tylko te których nazwa zaczyna się od tbDane
Żeby np. nie pisać: 

{
tbDaneA1.Clear(); tbDaneB1.Clear(); tbDaneC1.Clear(); tbDaneAD1.Clear();
}

 

1 odpowiedź

0 głosów
odpowiedź 10 kwietnia 2024 przez VBService Ekspert (256,600 p.)
edycja 10 kwietnia 2024 przez VBService

Przy pomocy: System.Linq i Where

using System.Linq;

 

Przykład

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="gridMain">
        <TextBox Height="18" HorizontalAlignment="Left" Margin="29,20,0,0" Name="tbDaneA1" VerticalAlignment="Top" Width="69" Text="LoremA1" />
        <TextBox Height="18" HorizontalAlignment="Left" Margin="29,44,0,0" Name="tbDaneB1" VerticalAlignment="Top" Width="69" Text="LoremB1" />
        <TextBox Height="18" HorizontalAlignment="Left" Margin="29,68,0,0" Name="textBox3" VerticalAlignment="Top" Width="69" />
        <TextBox Height="18" HorizontalAlignment="Left" Margin="116,20,0,0" Name="tbDaneC1" VerticalAlignment="Top" Width="69" Text="LoremC1" />
        <TextBox Height="18" HorizontalAlignment="Left" Margin="116,44,0,0" Name="textBox5" VerticalAlignment="Top" Width="69" />
        <TextBox Height="18" HorizontalAlignment="Left" Margin="116,68,0,0" Name="textBox6" VerticalAlignment="Top" Width="69" />
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="212,20,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</Window>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var textBoxesToClear = gridMain.Children
                                           .OfType<TextBox>()
                                           .Where(tb => tb.Name.StartsWith("tbDane"));

            foreach (var textBox in textBoxesToClear)
            {
                textBox.Clear();
            }

        }

using System;
using System.Linq;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var textBoxesToClear = gridMain.Children
                                           .OfType<TextBox>()
                                           .Where(tb => tb.Name.StartsWith("tbDane"));

            foreach (var textBox in textBoxesToClear)
            {
                textBox.Clear();
            }

        }
    }
}

 

lub z użyciem tablicy nazw kontrolek

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //var textBoxesToClear = gridMain.Children
            //                               .OfType<TextBox>()
            //                               .Where(tb => tb.Name.StartsWith("tbDane"));

            //foreach (var textBox in textBoxesToClear)
            //{
            //    textBox.Clear();
            //}

            string[] textBoxNames = { "tbDaneA1", "tbDaneB1", "tbDaneC1" };

            foreach (string textBoxName in textBoxNames)
            {
                var textBox = (TextBox)gridMain.FindName(textBoxName); // Znajdź kontrolkę po nazwie
                if (textBox != null)
                {
                    textBox.Clear();
                }
            }
        }

using System;
//using System.Linq;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //var textBoxesToClear = gridMain.Children
            //                               .OfType<TextBox>()
            //                               .Where(tb => tb.Name.StartsWith("tbDane"));

            //foreach (var textBox in textBoxesToClear)
            //{
            //    textBox.Clear();
            //}

            string[] textBoxNames = { "tbDaneA1", "tbDaneB1", "tbDaneC1" };

            foreach (string textBoxName in textBoxNames)
            {
                var textBox = (TextBox)gridMain.FindName(textBoxName); // Znajdź kontrolkę po nazwie
                if (textBox != null)
                {
                    textBox.Clear();
                }
            }
        }
    }
}

 

komentarz 12 kwietnia 2024 przez roger10 Nowicjusz (180 p.)
Dzięki za obszerną pomoc !

Podobne pytania

0 głosów
1 odpowiedź 495 wizyt
+1 głos
1 odpowiedź 557 wizyt
pytanie zadane 21 kwietnia 2021 w Sprzęt komputerowy przez MrMock Bywalec (2,890 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,662 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...