kalkulator w visual studio

Odpowiedz Nowy wątek
2019-09-05 17:21

Rejestracja: 1 rok temu

Ostatnio: 7 miesięcy temu

0

witam jestem początkującym i mam problem mianowicie robie kalkulator i nie umiem zaprogramować żeby w textboxie była ograniczona ilość wpisanych liczb zeby np było mozna wpisac 10 i potem stop proszę o pomoc

Pozostało 580 znaków

2019-09-05 17:23

Rejestracja: 1 rok temu

Ostatnio: 2 godziny temu

0

Nie wiem, w czym robisz ten program, ale pewnie gdzieś tam jest możliwość ustawienia długości wprowadzanego testu na kontrolce we właściwościach. Powinno dać się tez ustawić maskę, tak żeby nie dało się wpisać liter.

edytowany 1x, ostatnio: UglyMan, 2019-09-05 17:24

Pozostało 580 znaków

2019-09-05 17:25

Rejestracja: 1 rok temu

Ostatnio: 7 miesięcy temu

0

w Visual Studio jest takie cos jak MaxLength ale zmiana tego nie daje pożądanego efektu

Zaczekaj, zaraz wyciągnę szklaną kule i wywróżę jaki efekt jest pożądany - _13th_Dragon 2019-09-05 17:32

Pozostało 580 znaków

2019-09-05 17:36

Rejestracja: 1 rok temu

Ostatnio: 7 miesięcy temu

0

nie umiem zaprogramować żeby w textboxie była ograniczona ilość wpisanych liczb zeby np było mozna wpisac 10 i potem stop

odróżniasz cyfry od liczb? - AnyKtokolwiek 2019-09-06 01:55

Pozostało 580 znaków

2019-09-05 19:04

Rejestracja: 3 lata temu

Ostatnio: 6 dni temu

Lokalizacja: Jastrzębie-Zdrój

0

Różnica polega na tym, że MaxLength jest po to, aby ograniczyć wpisywanie lub wklejanie ilości znaków w TextBox przeż użytkownika oprogramowania. Jeśli ustawiasz tekst z pozycji kodu to to ci niestety nie pomoże

Pozostało 580 znaków

2019-09-06 13:20

Rejestracja: 2 lata temu

Ostatnio: 2 tygodnie temu

1

Możesz zasubskrybować OnPreviewTextInput i sprawdzać czy wpisany tekst zawiera tylko cyfry.

MainWindow.xaml

<Window ...>

    <Window.Resources>
        <Style TargetType="TextBox" x:Key="DigitTextBox">
            <Setter Property="FontSize" Value="64" />
            <Setter Property="MinWidth" Value="400" />
            <Setter Property="MaxLength" Value="10" />
            <Setter Property="HorizontalContentAlignment" Value="Center" />
            <Setter Property="VerticalContentAlignment" Value="Center" />
        </Style>
    </Window.Resources>

    <Grid VerticalAlignment="Center"
          HorizontalAlignment="Center">

        <TextBox PreviewTextInput="TextBox_OnPreviewTextInput"
                 Style="{StaticResource DigitTextBox}"
                 Text="{Binding Input, UpdateSourceTrigger=PropertyChanged}" />
    </Grid>

</Window>

MainWindow.cs

public partial class MainWindow : INotifyPropertyChanged
{
    private int _input;

    public int Input
    {
        get => _input;
        set
        {
            _input = value;
            OnPropertyChanged(nameof(Input));
        }
    }

    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }

    private void TextBox_OnPreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        e.Handled = e.Text.Any(c => !char.IsDigit(c));
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
Sporo się nauczyłem przez tą odpowiedź ;D - Grzegorz Świdwa 2019-09-23 14:32

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0