Obsługa błędów

P K
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Witam :)
Napisałam aplikację formularzową, która pokazuje komunikat w przypadku pojawienia się błędu, po kliknięciu w przycisk Button click. Mam problem, ponieważ chciałabym, żeby błędy były sprawdzanie nie poprzez przycisk Button click. Proszę o wyjaśnienie w którym miejscu powinno być umieszczone takie sprawdzanie błędów i jak to ma wyglądać? Czy chodzi tutaj również o try... catch tylko poza buttonem?

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

private void button1_Click(object sender, EventArgs e)
try
{
double r, objetosc;
r = Convert.ToDouble(textBox1.Text);
if (r < 0)
{
MessageBox.Show("Błąd wprowadzania danych!");
listBox1.Items.Add(0.ToString());
}
else
{
objetosc = Math.Round((Math.PI Math.Pow(r,3) 4 / 3),2);
listBox1.Items.Add("Długość promienia " + r);
listBox1.Items.Add("Objetosc kuli wynosi " + objetosc);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

}

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5227
0

Mam problem, ponieważ chciałabym, żeby błędy były sprawdzanie nie poprzez przycisk Button click

Kiedy chcesz sprawdzać czy jest błąd? Gdy ktoś wpisuje do textboxa?

Generalnie przy czymś tak zwykłym jak r < 0 raczej nie używałbym try catch (oczywiście, jeżeli to r na pewno jest już doublem)

A do konwertowania możesz użyć

https://msdn.microsoft.com/pl-pl/library/994c0zb1(v=vs.110).aspx

P K
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0
WeiXiao napisał(a):

Kiedy chcesz sprawdzać czy jest błąd? Gdy ktoś wpisuje do textboxa?

Tak, na przykład wtedy.

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5227
0

Obczaj to

https://www.dotnetperls.com/textbox-wpf

Zdarzenie TextChanged

This is triggered whenever the Text property of the TextBox changes.

Ewentualnie, jeżeli chodzi o wprowadzanie liczb, to może daj na TextBox maskę (input mask) - definiuje jakie znaki można wprowadzać.

Chociaż z tego co widzę, to nie jest to tak proste jak w WinFormsach (tzn. w formsach jest gotowiec) :P

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Najprościej byłoby jednak użyć kontrolki do wprowadzania liczb, która po prostu nie pozwala na wpisywanie tekstu oraz na ustawienie minimalnej oraz maksymalnej wartości, a nie bawić się w ręczne parsowanie i łapanie wyjątków.

grzesiek51114
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2442
0

@somekind: WPF jest upośledzony i takowej nie posiada vide trzeba skorzystać z osobnych bibliotek, np. MahApps.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.