Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 2.980 pregleda

Najnovija ↓

textBox-kontrola fokusa 29.09.2011. u 20:09 · pre 183 meseca #1
Molim vas za pomoc.Pregledao sam stare teme,ali nisam nasao resenje za moj problem.Imam formu i u njoj 20.textBox-a i 4.comboBox-a.Porebna mi je takva kontrola,da program prekine izvrseje ako je neki textBox ili comboBox ostao prazan tj.nije uneta nikakva vrednost tipa int,float ili double i da prazan textBox ili comboBox ostane fokusiran tako da program ne moze nastaviti sa izvrsenjem.Probao sam sa kodom:
Code:
 private void button1_Click(object sender, EventArgs e)
        {
            int a;
            double b,c;

 if (textBox1.Text== "")
            {
                MessageBox.Show("Unesite vrednos a");
                               textBox1.Focus();
              }
if (textBox2.Text== "")
            {
                MessageBox.Show("Unesite vrednos b");
                               //textBox1.Select();
                               textBox2.Focus();
              }
//itd.

            a = Convert.ToInt32(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = a * b;
            textBox3.Text = c.ToString();
}


program odradi MessageBox,ali textBox ostane bez fokusa i dolazi do pucanja programa.Koristim MV C# 2008 Express Edition i totalni sam pocetnik u pomenutom programskom okruzenju.Ranije sam koristio Turbo Delphi 2006.i u njemu se ovaj problem resava ovako:
Code:
if Edit1.Text=' ' then begin
   ShowMessage('Unesite vrednost a.');
   Edit1.SetFocus;
   Exit;
   end;

Kako resiti ovaj,za mene,veliki problem.

Re: textBox-kontrola fokusa 29.09.2011. u 20:24 · pre 183 meseca #2
Code (csharp):

private void button1_Click(object sender, EventArgs e)
{
             int a;
             double b,c;

  if (textBox1.Text== "")
             {
                 MessageBox.Show("Unesite vrednos a");
                                textBox1.Focus();
               } else
 if (textBox2.Text== "")
             {
                 MessageBox.Show("Unesite vrednos b");
                                //textBox1.Select();
                                textBox2.Focus();
               }else{
 //itd.

             a = Convert.ToInt32(textBox1.Text);
             b = Convert.ToDouble(textBox2.Text);
             c = a * b;
             textBox3.Text = c.ToString();
}
 }


Do konverzije treba da dođe samo ako nisu prazni, ako je neki prazan, ne treba uopšte da dođe do tog dela.
Re: textBox-kontrola fokusa 29.09.2011. u 20:55 · pre 183 meseca #3
Ne radi.Probao sam sa dva TextBox-a zaunos i jedan za rezultat.Odradi MessageBox,a zatim program pukne.
Re: textBox-kontrola fokusa 29.09.2011. u 21:09 · pre 183 meseca #5
Probao sam sa kodom u odgovoru.Ako je prazan textBox1.pukne u a = Convert.ToInt32(textBox1.Text);,a ako je prazan textBox2.onda u b = Convert.ToDouble(textBox2.Text);
Re: textBox-kontrola fokusa 29.09.2011. u 21:21 · pre 183 meseca #6
Što znači da te dve naredbe ne treba da se dese ukoliko je neki od textbox-ova prazan. Ajde okači taj kod, ili ceo projekat na neki hosting, pošto bi trebalo da radi. Nešto nisi napisao kako treba.
Re: textBox-kontrola fokusa 29.09.2011. u 21:25 · pre 183 meseca #7
lonelyrider_44 ti je odgovorio, verovatno ti je promaklo.

Citat:
lonelyrider_44:Do konverzije treba da dođe samo ako nisu prazni, ako je neki prazan, ne treba uopšte da dođe do tog dela.

Mozda ce ti biti jasnije na sta je mislio ako dodas po jedan return iza Focus() poziva (tako ce ti biti i citljiviji kod, nego da ubacis 20+ else-if-ova).

Code (csharp):

private void button1_Click(object sender, EventArgs e)
{  
   if (provera_za_kontrolu_X)
   {
      MessageBox.Show("Unesite vrednost za kontrolu X");
      kontrola_X.Focus();
      return;
   }

   // proveri ostale kontrole na slican nacin...

   // validacija je OK
   a = ...
   b = ...
   c = ...
}
 
Re: textBox-kontrola fokusa 29.09.2011. u 21:26 · pre 183 meseca #8

Code:
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 Probni
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

       
        private void button1_Click(object sender, EventArgs e)
        {
            int a;
            double b,c;

            if (textBox1.Text=="")
             {
                 MessageBox.Show("Unesite vrednos a");
                                textBox1.Focus();
               } else 
 if (textBox2.Text=="")
             {
                 MessageBox.Show("Unesite vrednos b");
                                //textBox1.Select();
                                textBox2.Focus();
               }
 //itd.


            a = Convert.ToInt32(textBox1.Text);
            b = Convert.ToDouble(textBox2.Text);
            c = a * b;

            textBox3.Text = c.ToString();
        }
    }
}

Ovo je ceo kod za ovu probu.
Re: textBox-kontrola fokusa 29.09.2011. u 21:29 · pre 183 meseca #9
Fali ti else nakon provere textBox2 . Ovo je način na koji si hteo da uradiš program. Lakši način bi bio, recimo
Code:

...
if (textBox1.Text != "" && textBox2.Text != "")
{
//kod za mnozenje
}

Re: textBox-kontrola fokusa 29.09.2011. u 21:48 · pre 183 meseca
izmenjeno 1 put, poslednji put Burzza 29.09.2011. u 22:02
  1. Burzza29.09.2011. u 22:02zapis iz teksta poruke
#10
Radi.Radicu na prvi nacin,jer on kaze gde nije uneta vrednost,za razliku od drugog,koji samo zaustavi izvrsenje programa.Imam jos jedan problem,ali to cu ostaviti za kasnije.Moracu da otvorim novu temu.
Hvala ti na pomoci.Pozdrav.

Pozdrav izahvalnost i za "Marko 1981".
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme