PDA

View Full Version : برنامه ی محاسبات ماتریس در ویندوز اپلیکیشن



gh_mohammady
سه شنبه 30 آبان 1391, 21:15 عصر
با سلام و خسته نباشید خدمت اساتید ، کارشناسان و دوستان محترم
من میخوام برنامه ی محاسبات ماتریس رو در ویندوز اپلیکیشن بنویسم به نحوی که کاربر ابعاد دو ماتریس رو وارد می کنه و به تعداد ابعاد تکس باکس روی فرم ایجاد میشه ، مشکل من اینه که وقتی تکس باکس ها رو به صورت خطی ایجاد کنیم چطور می تونیم داده ها رو ازشون بخونیم و در یک آرایه ذخیره کنیم ؟
پیشاپیش از راهنماییهاتون سپاس گزارم .

hakim22
چهارشنبه 01 آذر 1391, 10:42 صبح
شما میتوانید از DataGridView استفاده کنید و سطر و ستونهاشو به صورت دستی بسازید و خیلی راحت مقادیر هر سلول رو استخراج کنید.

ولی اگر از TextBox استفاده می کنید موقع ساختن هر تکست باکس اون رو به یک آرایه دو بعدی اختصاص بدید و بعد برای دسترسی به اون textbox درایش رو مشخص می کنید :

شبه کد :


Array[,] TextBoxGrid= new Array[3,3];

for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
TextBox tbcell=new TextBox();
// تنظیم خصوصیات گرید و محل قرار گیری و ترسیم آن
TextBoxGrid[i,j]=tbCell;
}


}



//--- بدست آوردن آن

TextBox myTbCell=null;

//--- اگر خطا داد از Convert استفاده کنید
myTbCell=(TextBox) TextBoxGrid[1,1];

gh_mohammady
چهارشنبه 01 آذر 1391, 15:42 عصر
از لطفی که داشتید سپاس گزارم اما برنامه ی من بازم ارور میده ، یعنی نمیشه یک مقدار تکس رو به ارایه نسبت داد ؟
این کد ماتریس اول منه


R1 = int.Parse(textBox1.Text);
C1 = int.Parse(textBox2.Text);
R2 = int.Parse(textBox3.Text);
C2 = int.Parse(textBox4.Text);
Array [,] A=new Array [R1,C1];
for ( i = 0; i < C1; i++)
{
for ( j = 0; j <R1; j++)
{
TextBox t = new TextBox();
t.Width = 20;
t.Height = 20;
t.Multiline = true;
t.Left = t.Location.X + i * 20;
t.Top = t.Location.Y +textBox2.Bottom + j * 20 ;
this.Controls.Add(t);
A[i, j] = t;
}
k +=1;
}
که از خط قرمز ارور می گیره ...

Mahmoud.Afrad
چهارشنبه 01 آذر 1391, 16:18 عصر
کدوم خط قرمز . خواهشا بعد از ارسال پست اونو یه نگاه بندازید.

آرایه رو از نوع تکست باکس بگیر. شرط حلقه ها هم باید اصلاح بشه(حلقه بیرونی با R1 تعداد سطر و حلقه داخل با C1 ستونها رو میسازه)

R1 = int.Parse(textBox1.Text);
C1 = int.Parse(textBox2.Text);
R2 = int.Parse(textBox3.Text);
C2 = int.Parse(textBox4.Text);
TextBox[,] A = new TextBox[R1, C1];

for (int i = 0; i < R1; i++)
{
for (int j = 0; j < C1; j++)
{
TextBox t = new TextBox();
t.Width = 20;
t.Height = 20;
t.Multiline = true;
t.Left = 50 + i * 20;
t.Top = 50 + j * t.Bottom;
this.Controls.Add(t);
A[i, j] = t;
}
k += 1;
}

gh_mohammady
پنج شنبه 02 آذر 1391, 12:23 عصر
کدوم خط قرمز . خواهشا بعد از ارسال پست اونو یه نگاه بندازید.

آرایه رو از نوع تکست باکس بگیر. شرط حلقه ها هم باید اصلاح بشه(حلقه بیرونی با R1 تعداد سطر و حلقه داخل با C1 ستونها رو میسازه)

R1 = int.Parse(textBox1.Text);
C1 = int.Parse(textBox2.Text);
R2 = int.Parse(textBox3.Text);
C2 = int.Parse(textBox4.Text);
TextBox[,] A = new TextBox[R1, C1];

for (int i = 0; i < R1; i++)
{
for (int j = 0; j < C1; j++)
{
TextBox t = new TextBox();
t.Width = 20;
t.Height = 20;
t.Multiline = true;
t.Left = 50 + i * 20;
t.Top = 50 + j * t.Bottom;
this.Controls.Add(t);
A[i, j] = t;
}
k += 1;
}

از لطفی که داشتید سپاس گزارم ،