PDA

View Full Version : ارور Input string was not in a correct format.



hsdnhd
شنبه 22 آذر 1393, 13:55 عصر
باسلام
من قطعه کدی نوشتم برای ساخت یه آرایه پویا با قابلیت مشخص کردن مقدار خونه های آرایه توسط کاربر ونمایش مقادیر اون اما موقعی ذخیره کردن مقدار در آرایه این ارور دیده میشه مشکل ازکجاست به نظر شما؟
126549
سورس برنامه هم :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace Array
{
public partial class Form1 : Form
{
int[,] x = new int[10,10];
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
Close();
}

private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (radioButton1.Checked==true)
listBox1.Items.Add(x[i, j]);
else
listBox1.Items.Add(x[j, i]);
}
}
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{

}

private void button4_Click(object sender, EventArgs e)
{
richTextBox1.Text = " ";
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
richTextBox1.Text += x[i,j] + " ";
}
richTextBox1.Text += "\n";
}
}

private void button1_Click_1(object sender, EventArgs e)
{
x[Convert.ToInt32(textBox1.Text),Convert.ToInt32(tex tBox2.Text)]= Convert.ToInt32(textBox3.Text);
}
}
}


به نظرشما مشکل ازکجاست؟

plus
شنبه 22 آذر 1393, 14:18 عصر
متنی که در یکی از textbox ها وارد کردین، قابل تبدیل به Int32 نبوده.مثلا مقداری وارد نشده یا کاراکترهای غیر عددی وارد شده.میتونید قبل از فراخوانی Convert.Int32 مقادیر وارد شده رو بررسی کنید که نامعتبر نباشن، یا از int.TryParse استفاده کنید تا در صورت نامعتبر بودن مقادیر پیغام مناسب رو به کاربر بدین.
در ضمن اگه در هر خط فقط یک عمل انجام بدین راحتتر خطا ها رو تشخیص میدین.

private void button1_Click_1(object sender, EventArgs e) {
int i;
int j;
int n;
string iStr = textBox1.Text;
if (!int.TryParse(iStr, out i)) {
MessageBox.Show("Invalid (i).");
return;
}
string jStr = textBox2.Text;
if (!int.TryParse(jStr, out j)) {
MessageBox.Show("Invalid (j).");
return;
}
string nStr = textBox3.Text;
if (!int.TryParse(nStr, out n)) {
MessageBox.Show("Invalid value.");
return;
}
x[i, j] = n;
}

feryt20
شنبه 22 آذر 1393, 14:24 عصر
داره از ورودی شما ایراد میگیره
من نمیدونم شما چی وارد تکست باکس میکنید
وگرنه کد مشکلی نداره

hsdnhd
شنبه 22 آذر 1393, 20:44 عصر
ممنون از راهنمایی های شما دوستان
مشکل ازاین بود که Textbox3رو خالی رد می کردم اصلا حواسم نبود واین مشکل به وجود میومد.
ممنون