PDA

View Full Version : سوال: نحوه فراخوانی کلاس در برنامه



rahman65
پنج شنبه 26 تیر 1393, 11:34 صبح
با عرض سلام خدمت همه اساتید ارجمند سوالی داشتم در مورد نحوه فراخوانی کلاس در برنامه البته میدونم قبل از این تاپیک هم یک تاپیک با همین عنوان ایجاد شده بود ولی چون نتیجه نداد تصمیم به ایجاد این تاپیک کردم
من یه کلاس همانند زیر ایجاد کردم
در فرمم یک باتون ودو تا تکست باکس دارم
حالا میخوام عدد رو در داخل تکست 1 بزارم و وقتی کلید باتون را فشار دادم حروفی همان عدد در تکست 2 نشون داده بشه
از لطفی که در حقم میکنید بسیار سپاسگزارم

using System;using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace WindowsFormsApplication12
{
public class NumberToString
{
private static string[] yakan = new string[10] { "صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه" };
private static string[] dahgan = new string[10] { "", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود" };
private static string[] dahyek = new string[10] { "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };
private static string[] sadgan = new string[10] { "", "یکصد", "دوصد", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد" };
private static string[] basex = new string[5] { "", "هزار", "میلیون", "میلیارد", "تریلیون" };
private static string getnum3(int num3)

{
string s = "";
int d3, d12;
d12 = num3 % 100;
d3 = num3 / 100;
if (d3 != 0)
s = sadgan[d3] + " و ";
if ((d12 >= 10) && (d12 <= 19))
{
s = s + dahyek[d12 - 10];
}
else
{
int d2 = d12 / 10;
if (d2 != 0)
s = s + dahgan[d2] + " و ";
int d1 = d12 % 10;
if (d1 != 0)
s = s + yakan[d1] + " و ";
s = s.Substring(0, s.Length - 3);
};
return s;
}
public string num2str(string snum)
{
string stotal = "";
if (snum == "0")
{
return yakan[0];
}
else
{
snum = snum.PadLeft(((snum.Length - 1) / 3 + 1) * 3, '0');
int L = snum.Length / 3 - 1;
for (int i = 0; i <= L; i++)
{
int b = int.Parse(snum.Substring(i * 3, 3));
if (b != 0)
stotal = stotal + getnum3(b) + " " + basex[L - i] + " و ";
}
stotal = stotal.Substring(0, stotal.Length - 3);
}
return stotal;
}
}


}

abdullah20
پنج شنبه 26 تیر 1393, 12:25 عصر
خوب دوست عزیز اینکه کاری نداره
NumberToString numcon=new NumberToString ();
textBox2.Text = numcon.num2str(textBox1.Text);

rahman65
پنج شنبه 26 تیر 1393, 18:35 عصر
خوب دوست عزیز اینکه کاری نداره
NumberToString numcon=new NumberToString ();
textBox2.Text = numcon.num2str(textBox1.Text);

استاد عزیز واقعاً دستتون درد نکنه ازتون ممنونم

الان با این کد فراخوانی شد وهیچ مشکلی هم نداشت

یه مشکلی که هست اینه که وقتی که خواصیت تکست باکس رو تغییر میدم تا عدد رو سه رقم سه رقم جدا کنه اون وقت دیگه این کد کار نمیکنه میشه در این مورد هم توضیح بدید که چیکار باید بکنم

منظور من به صورت زیر است private void textBox1_TextChanged(object sender, EventArgs e) {
decimal Number;
if (decimal.TryParse(textBox1.Text, out Number))
{
textBox1.Text = string.Format("{0:N0}", Number);
textBox1.SelectionStart = textBox1.Text.Length;
}
}
با کد بالا وقتی عددی رو مینویسم 3 رقم سه رقم جدا میکنه ولی وقتی رو باتون کلیک میکنم برنامه خطا میده

یه بار دیگه از لطف شما تشکر وقدر دانی میکنم

abdullah20
جمعه 27 تیر 1393, 13:19 عصر
خوب باید کارکتر ، را بردارید
مثلا با استفاده از تابع Replace
NumberToString numcon = new NumberToString();
textBox2.Text = numcon.num2str(textBox1.Text.Replace("،",string.Empty ));