mboost-dp1
C# har brug for hjælp
- Forside
- ⟨
- Forum
- ⟨
- Programmering
mit program lukker ned mår jeg trygger på chunk knappen jeg kan ikke fixe jeg tror det er en if command der skal til jeg har pråvet i en uge nu og søgt på nættet høber der er nogle der vil hjælpe mig:D
og i programmet kan der kun skrives med tal det hopper ud når der ikke bliver skrevet en vadi i textBoxen....:D
link til fillen der kodes i:D
Tak for i gider at kigge på det:)
[url=
]http://]
http://www.mediafire.com/download.php?rfmitqjzqowr... [/url]
source her _____
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 Chunk
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (!char.IsDigit(ch) && ch != 8)
{
e.Handled = true;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
int a, b, c, d, f, h;
a = Convert.ToInt32(Chunkx.Text);
b = Convert.ToInt32(Chunkz.Text);
c = a / 16 * 16;
d = b / 16 * 16;
f = c + 15;
h = d + 15;
labelX.Text = "X = " + (labelX.Text = Convert.ToString(f) + (" Z = ") + (labelX.Text = Convert.ToString(d)));
labelz.Text = "X = " + (labelz.Text = Convert.ToString(f) + (" Z = ") + (labelz.Text = Convert.ToString(h)));
label6.Text = "X = " + (label6.Text = Convert.ToString(c) + (" Z = ") + (label6.Text = Convert.ToString(h)));
label4.Text = "X = " + (label4.Text = Convert.ToString(c) + (" Z = ") + (label4.Text = Convert.ToString(d)));
}
private void button2_Click(object sender, EventArgs e)
{
Chunkx.Clear();
Chunkz.Clear();
labelX.Text = "";
labelz.Text = "";
label6.Text = "";
label4.Text = "";
}
private void Chunkz_TextChanged(object sender, EventArgs e)
{
}
private void Chunkz_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (!char.IsDigit(ch) && ch != 8)
{
e.Handled = true;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
}
}
og i programmet kan der kun skrives med tal det hopper ud når der ikke bliver skrevet en vadi i textBoxen....:D
link til fillen der kodes i:D
Tak for i gider at kigge på det:)
[url=
]http://]
http://www.mediafire.com/download.php?rfmitqjzqowr... [/url]
source her _____
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 Chunk
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (!char.IsDigit(ch) && ch != 8)
{
e.Handled = true;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
int a, b, c, d, f, h;
a = Convert.ToInt32(Chunkx.Text);
b = Convert.ToInt32(Chunkz.Text);
c = a / 16 * 16;
d = b / 16 * 16;
f = c + 15;
h = d + 15;
labelX.Text = "X = " + (labelX.Text = Convert.ToString(f) + (" Z = ") + (labelX.Text = Convert.ToString(d)));
labelz.Text = "X = " + (labelz.Text = Convert.ToString(f) + (" Z = ") + (labelz.Text = Convert.ToString(h)));
label6.Text = "X = " + (label6.Text = Convert.ToString(c) + (" Z = ") + (label6.Text = Convert.ToString(h)));
label4.Text = "X = " + (label4.Text = Convert.ToString(c) + (" Z = ") + (label4.Text = Convert.ToString(d)));
}
private void button2_Click(object sender, EventArgs e)
{
Chunkx.Clear();
Chunkz.Clear();
labelX.Text = "";
labelz.Text = "";
label6.Text = "";
label4.Text = "";
}
private void Chunkz_TextChanged(object sender, EventArgs e)
{
}
private void Chunkz_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if (!char.IsDigit(ch) && ch != 8)
{
e.Handled = true;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
}
}
Nu er jeg sgu forvirret.
Men hvis du vil tjekke på om der står noget i de to tekstbokse, kan du vel bare lave noget alá dette:
Noget i den stil om ikke andet.
Men hvis du vil tjekke på om der står noget i de to tekstbokse, kan du vel bare lave noget alá dette:
if(Chunkx.Text == "" || Chunkz.Text == "")
MessageBox.Show("Fejl");
else
a = Convert.ToInt32(Chunkx.Text);
b = Convert.ToInt32(Chunkz.Text);
c = a / 16 * 16;
d = b / 16 * 16;
f = c + 15;
h = d + 15;
labelX.Text = "X = " + (labelX.Text = Convert.ToString(f) + (" Z = ") + (labelX.Text = Convert.ToString(d)));
labelz.Text = "X = " + (labelz.Text = Convert.ToString(f) + (" Z = ") + (labelz.Text = Convert.ToString(h)));
label6.Text = "X = " + (label6.Text = Convert.ToString(c) + (" Z = ") + (label6.Text = Convert.ToString(h)));
label4.Text = "X = " + (label4.Text = Convert.ToString(c) + (" Z = ") + (label4.Text = Convert.ToString(d)));
Noget i den stil om ikke andet.
Um.. Smider Convert.ToInt32() ikke en exception hvis strengen ikke er et validt heltal?
MSDN
Så noget ala:
Og egentligt skulle du vel også catche OverflowException i tilfælde af at tallet er for stort eller lille.
MSDN
Så noget ala:
try {
a = Convert.ToInt32(Chunkx.Test);
}
catch (FormatException e) {
// Gør et eller andet.. E.g. informer brugeren om invalid input
}
Og egentligt skulle du vel også catche OverflowException i tilfælde af at tallet er for stort eller lille.
#20
Det er en god løsning.
Convert metoderne bør generelt undgåes, da mange af dem ikke er specielt type sikre. Og hvis man ikke ville være type sikker, så skal man bruge et andet sprog end C#.
Og int.TryParse bruger retur værdi i modsætning til int.Parse som smider en exception. Og at en bruger indtaster forkerte data er ikke specielt exceptional.
Et alternativ kunne være at forhindre indtastning af andet en valide heltal i tekst feltet.
Det er en god løsning.
Convert metoderne bør generelt undgåes, da mange af dem ikke er specielt type sikre. Og hvis man ikke ville være type sikker, så skal man bruge et andet sprog end C#.
Og int.TryParse bruger retur værdi i modsætning til int.Parse som smider en exception. Og at en bruger indtaster forkerte data er ikke specielt exceptional.
Et alternativ kunne være at forhindre indtastning af andet en valide heltal i tekst feltet.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.