NumericUpDown kursor wraca na początek

0

Witam

podczas sprawdzania wartości NumericUpDown kursor wraca na początek , podczas wpisywania dłuższych liczb jest to dość uciążliwe :(

 private void numericUpDown1_KeyUp(object sender, KeyEventArgs e)
        {
            textBox1.Text = numericUpDown1.Value.ToString();
        }

użycie takiego kodu powoduje że kursor wraca na początek :(
co zrobić żeby wpisywana wartość była przepisywana do innej kontrolki bez takiego efektu ??

z góry dziękuję za odpowiedzi

0

Nie doczekałem się odpowiedzi :( ale udało mi się coś takiego znaleźć na zagranicznych forach

 textBox1.Text = numericUpDown1.Controls[1].Text; 

proszę o potwierdzenie poprawności tego kodu jeżeli można prosić :)

0

a czy ja kolego poprosiłem żeby ktoś sprawdził czy potwierdził poprawność ??

to że coś pozornie działa nie do końca oznacza że jest to poprawnie napisane

ale ok , nie to nie ;) .. właśnie przez takie posty to forum jest ostatnią deską ratunku jakiej się łapię ... wolę przez kilka dni szukać rozwiązania na zagranicznych forach niż zadawać tu pytania , a nie powinno tak być !!

0

Nie wiem co nakombinowałeś że kursor wraca na początek. bo wraca on tylko w momencie jak przekroczysz zakres w numericUpDown. więc jak potrzebujesz większe liczby to po prostu zwiększ zakres. A to Twoje znalezisko to nic innego jak wyciąganie z kontrolki[1] którą dodałeś do numericUpDown pola treść, naprawdę miałeś potrzebę pakować kontrolkę w kontrolkę ?

0

No widzisz kolego wraca zawsze gdy użyje sprawdzenia wartości NumericUpDown przez Value niezależnie czy przekroczę wartość Maximum czy nie

    private void numericUpDown1_KeyUp(object sender, KeyEventArgs e)
    {
        //textBox1.Text = numericUpDown1.Controls[1].Text;
        textBox1.Text = numericUpDown1.Value.ToString();
    }

pozdrawiam

0

Noto widzisz więc Twój problem nie leży w tej funkcji, aż nawet stworzyłem projekt żeby sprawdzić czy przypadkiem się nie mylę, dałem texbox, numericUpDown i dodałem Twoją funkcje nic się nie wraca ani nie gubi. ;)

0

no ja też mam czysty projekt i mi wraca :D:D

 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;

namespace NumericUpDown_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void numericUpDown1_KeyUp(object sender, KeyEventArgs e)
        {
            //textBox1.Text = numericUpDown1.Controls[1].Text;
            textBox1.Text = numericUpDown1.Value.ToString();
        }
    }
}

może to wina OS ??

0

Jaką wartość ustawiłeś we właściwości Maximum, i jaką liczbę wpisujesz?

0

Maximum 100
Minimum 0
Digits 3

uruchamiając aplikacje mam wyświetlone 0.00 klikam na końcu muszką wciskam przycisk backspace do skasowania ostatniego zera by wpisać np. 1 i po tej czynność skacze mi na początek :)

0

Przepraszam za dublowanie oczywiście wyświetlone jest 0.000 i nie Digits 3 tylko DecimalPlaces 3

0
Pytanie napisał(a):

Maximum 100
Minimum 0
Digits 3

uruchamiając aplikacje mam wyświetlone 0.00 klikam na końcu muszką wciskam przycisk backspace do skasowania ostatniego zera by wpisać np. 1 i po tej czynność skacze mi na początek :)

Czemu zatem nie napisałeś tego od razu, tylko każesz to z siebie wyciągać?

Odwołujesz się do właściwości Value, co powoduje szereg operacji takich jak parsowanie i poprawianie tekstu znajdującego się w kontrolce. Zapewne przeskoczenie kursora jest efektem ubocznym tego procesu. I nie ma w tym nic złego, bo zazwyczaj z Value korzysta się po zakończeniu edycji danych, a nie w jej trakcie.

Dlaczego nie możesz po prostu skorzystać z właściwości NumericUpDown.Text?

 
textBox1.Text = numericUpDown1.Text;
0

Przecież w pierwszym poście jak byk jest jak się odwołuje do wartości kontrolki :)

Value.ToString();

a czemu nie korzystam z Text ??? z prostej przyczyny :) nie da się lub ja nie potrafię zmusić kontrolki NumericUpDown by można było odczytać wartość przez Text :)

pozdrawiam

0

Zwracam honor :) pomimo że VS pokazuje przed kompilacją że taki zapis jest błędny

textBox1.Text = numericUpDown1.Text; 

kompilacja przebiega prawidłowo i wszystko działa jak należy .
a ja tyle się na męczyłem :D

ale ogólnie trochę dziwne że VS nie pokazuje że dla tej kontrolki można użyć Text , wręcz przeciwnie pokazuje podkreślając na czerwono że taki zapis jest błędny co mnie zmyliło :)

dziękuje bardzo za pomoc

0

wyczyść cache projektu, to powinno pomóc w dziwnych zachowaniach VS

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