سوال ۴ فصل ۵ کتاب سیشارپ قمی اینه که دو تا عدد ۱۰۰ رقمی رو جمع بزنیم و فیلدهای تکست فقط محتوای عددی بگیرن.
مشکل در ایجاد تسکتباکسیه که فقط عدد بگیره، تمام راههای موجود واسه اینکار رو امتحان کردم، از راههایی که اینجا معرفی شده، تا دنیوب و استکآورفلو و ... منتها جواب نگرفتم، یعنی همچنان توی تکستباکسها میتونم حروف رو وارد کنم! مبتدی هستم و نمیدونم که مشکل از کجای کده، اگر از دوستان کسی زحمت مرورش رو بکشه ممنون میشم :)
آخرین کدی که استفاده کردم این بوده:
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 S5T4
{
public partial class mainForm : Form
{
public mainForm()
{
InitializeComponent();
}
private void firstNum_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}
private void secondNum_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
}
private void calcButton_Click(object sender, EventArgs e)
{
int[] first = new int[100];
int[] second = new int[100];
int[] result = new int[100];
string resultPrint = "";
int temp, carry = 0;
if (firstNum.Text.Length == 100 && secondNum.Text.Length == 100)
{
for (int n = 0; n < first.Count(); n++)
{
first[n] = firstNum.Text[n] - '0';
second[n] = secondNum.Text[n] - '0';
}
for (int i = first.Count() - 1; i >= 0; i--)
{
temp = first[i] + second[i] + carry;
result[i] = temp % 10;
carry = temp / 10;
if (i == 0)
{
result[i] = temp;
}
}
for (int j = 0; j <= result.Count() - 1; j++)
{
resultPrint += result[j].ToString();
}
MessageBox.Show(resultPrint);
}
else
MessageBox.Show("Please insert two 100 digits numbers");
}
}
}