numericUpDown - jak to ustawić w oknie Properties

0

Witam Wszystkich
mam problem z przerobieniem przykładu ze strony MSDN
konkretnie
z trzema wartościami - co mam wpisać w okienku Properties

     *  http:*msdn.microsoft.com/en-us/library/System.ComponentModel.BackgroundWorker(v=vs.110).aspx


        // numericUpDown1 
        //  
        this.numericUpDown1.Maximum = new System.Decimal(new int[] {
        91,
        0,
        0,
        0});
        this.numericUpDown1.Minimum = new System.Decimal(new int[] {
        1,
        0,
        0,
        0});
        this.numericUpDown1.Value = new System.Decimal(new int[] {
        1,
        0,
        0,
        0});

przecież tamże nie można chyba ? wpisać tablicy z czterema ! wartościami...

proszę o wskazanie czego ja nie pojmuję...
i ten Decimal a nie int lub uint ?!

ja kompletnie nie wiem, w którym kierunku biec...

wywala mi w ogóle po uruchomieniu tego kodu Fibonacci Calculator
jak zadam w numericUpDown wartości 1, 2 4...

serdeczne dzięki za podpowiedź(podpowiedzi)

Mirko

0

Do żadnej właściwości numericUpDown nie przypisujesz tablicy int[], tablice int[] sa tu parametrami konstruktora typu System.Decimal.

Co do tego Decimal to najnormalniej w świecie jest to typ tych włąściwości
http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.minimum(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.maximum(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown.value(v=vs.110).aspx
przecież świat nie składa się tylko z samych intów ;)

Biegnij w tym kierunku aby pracowicie skopiowac kod przykadu i wkleic go u siebie w kodzie, zamiast probowac wyklikac go w oknie properties ;)

I jeszcze jaśniej opisuj co i gdzie Ci wywala ;)

0

dla podanych wartości w numericUpDown:

1,2 lub 4
(a innych nie sprawdzałem)

wywala w metodzie:
( miejsce wywalania widoczne jest na załączony obrazku z komunikatem błędu )

  //
    // This is the method that does the actual work. For this 
    // example, it computes a Fibonacci number and 
    // reports progress as it does its work. 
    long ComputeFibonacci(int n, BackgroundWorker worker, DoWorkEventArgs e)
    {
        // The parameter n must be >= 0 and <= 91. Fib(n), with n > 91, overflows a long. 
        if ((n < 0) || (n > 91))
        {
            throw new ArgumentException("value must be >= 0 and <= 91", "n");
        }
        //
        long result = 0;
        //
        // Abort the operation if the user has canceled. 
        // Note that a call to CancelAsync may have set  
        // CancellationPending to true just after the 
        // last invocation of this method exits, so this  
        // code will not have the opportunity to set the  
        // DoWorkEventArgs.Cancel flag to true. This means 
        // that RunWorkerCompletedEventArgs.Cancelled will 
        // not be set to true in your RunWorkerCompleted 
        // event handler. This is a race condition. 
        //
        if (worker.CancellationPending)
        {
            e.Cancel = true;
        }
        else
        {
            if (n < 2)
            {
                result = 1;
            }
            else
            {
                result = ComputeFibonacci(n - 1, worker, e) +
                         ComputeFibonacci(n - 2, worker, e);
            }
            //
            // Report progress as a percentage of the total task. 
            int percentComplete = (int)((float)n / (float)numberToCompute * 100);
            //
            if (percentComplete > highestPercentageReached)
            {
                highestPercentageReached = percentComplete;
                worker.ReportProgress(percentComplete);// tu wywala dla numericUpDown(1), (2), (4)... nie wiem dlacczego ?!!!
            }
        }
        //
        return result;
    }
0

tak właściwie to użycie wymienionej kontrolki

to jest tylko w ramach problemu jaki rozwiązuję

mianowicie kontrolkę BackgroundWorker...

dla której MSDN zawiera wymienioną metodę oraz kontrolkę numericUpDown


zasadniczo jakiś inny proces długotrwały mogę podpiąć
omijając
dociekanie
dlaczego i jak oraz czy w ogóle pewne elementy zanjdują się dostępne
oraz w pełnym zakresie
można w Properties czyli w każdej postaci

to pierwsza sprawa dotycząca samej kontrolki numericUpDown

druga rzecz prosil Kolega o podanie dlaczego wywala
aby pokazać może fragment kodu co zrobiłem

i podobnie do poprzedniego stanowiska mojego
całościowo
do przetestowania działania kontrolki BackgroudWorker

nie jest mi potrzebna ani kontrolka numericUpDown
ani metoda której kod podałem
pochodzący ze strony której link MSDN zamiściłem

ponieważ jakikolwiek długotrwały proces mogę podpiąć byle wątek nieco miał do roboty

np. pętlę for to tryliona niechby policzył modulo...

dla potomnych może warto byłoby gdyby Ktoś z Formumowiczów odpowiedział
pochylając się nad problemem opisanym

ja się zdecydowałem
wymienić cały niedziałający długotrwały
proces zawarty w obsługującej kontrolce BackgroundWorker

na inny może i mniej spektakularny...

trochę matematycznych zdolności na wymyślenie czegoś
długotrwałego każdy z nas zapewne posiada

by może nawet i nie dociekać

co tam Microsoft jakie głupotki
zamieścił...

Jessy Liberty w HELION
to jeszcze mam z C++
mogę zerknąć gdyby mi chodziło jedynie o ciąg Fibonacciego...

a samej potrzeby dociekania opcji kontrolki numericUpDown
chwilowo nie mam do tego serca by dociekać...

mam Stephen Perry C# i NET dla 2.0
HELION
i inne opisujące może i ten aspekt związany z kontrolką numericUpDown

tyle iż to nie jest dla mnie w tym momencie
sprawą życia i śmierci

z powodów opisanych wyżej...

wywalę i tą kontrolkę i tą metodę obliczającą ciąg Fibonacciego

nich stracę...

pozdro

Nizio

1

Wiesz co, ja mam taką prośbę. Weź przeczytaj najpierw to co napisałeś i zastanów się czy ktoś kto nie siedzi w Twojej głowie będzie w stanie zrozumieć o co Ci chodzi.

0

to był kod oryginał z MSDN w pliku dotyczącym BackgroundWorker

przykład tamże w postaci kodu źródłowego NIE DZIAŁA w metodzie-funkcji
wyliczającej ciąg Fibonaccego...

myślałem i szukałem pomocy Forumowiczów
Koleżanek & Kolegów na Forum
ponieważ nie chciałem odrywać się od istoty mojego problemu
tj. chciałem jedynie przetestować działanie tych dwóch przykładów
z wskazanej strony w MSDN...

w trakcie oczekiwania na podpowiedzi
na Forum
zdałem sobie sprawę, iż
wcale mi ten głupkowaty ciąg Fibonacciego , metoda obliczająca, ani powiązana z nim kontrolka numericUpDown
NIE SĄ DO NICZEGO w odniesieniu do kontrolki BackgroundWorker
potrzebne znaczy się NIEZBĘDNE !
ponieważ mogę w tym kodzie obsługi interesującej mnie kontrolki
podpiąć dowolny proces np. pętlę for wyliczającą do tryliona, jeśli bym naprawdę potrzebował
jakiegoś dłuższego wyliczania...
a przecież w istocie o to chodziło
aby zająć wątek czymś wystarczająco długotrwałym jakimś procesem...

w Liceum uczą dzieciaki ( jeszcze przed 18stką ! a więc dzieciaki ! )
co autor miał na myśli...
również Microsoft !!!

ciąg Fibonacciego jest takim dość widowiskowym
procesem
jednakże dla kogoś kto da się uwikłać w dociekanie !!!
przyczyny błędu w tej metodzie...

dla kogoś jak ja zdeterminowanego trwać przy
istocie mojego problemu
tj. kontrolki BackgroundWorker
nieistotne jest jakiż to długotrwały proces
będzie użyty w metodach kontrolki BackgroundWorker

i to w podsumowaniu mojego kilkugodzinnego oczekiwania
na podpowiedzi na Forum
zawarłem
uważam, iż dość istotne
może już nie tylko w odniesieniu do kontrolki numericUpDown
a szerzej w odniesieniu do
związanej z nią metody obliczającej ciąg Fibonacciego
dotyczącym jeszcze bardziej
dokumentu którego link podałem

a którego nazwa tego pliku z MSDN
to BackgroundWorker !!!

w tym sensie
należy nie mieć mi za złe
iż opisywałem
nie tylko kontrolkę numericUpDown
ale w kontekście jej użycia
w źródłowym pliku ze strony MSDN !!!

pozdro dla Wszystkich z Forum

Nizio

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