PDA

View Full Version : سوال: افزودن شی به فرم اصلی که در کلاسی دیگر تعریف شده است



csharpdoost
سه شنبه 31 اردیبهشت 1392, 23:54 عصر
سلام.
دوستان طبق کد زیر بنده اشیائی رو به فرم اصلی میخوام اضافه کنم اگه این کدها رو در خود فرم اصلی بنویسم مشکلی ندارم اما وقتی در کلاسی جدا مینویسم و کلاس رو فرخوانی میکنم برنامه بدون خطا اجرا میشه اما دیگه اشیائ اضافه نمیشن چرا؟! چیکار باید بکنم. این یه متدی هست که در داخل همون کلاس نوشته شده.
Form1 frm = new Form1();

private void CCU_LablesMetod(string[,] sheft_personal)
{
int xf = 350, yf = 15;
int xn = 330, yn = 15;
for (int a = 0; a < sheft_personal.GetLength(0); a++)
{

System.Windows.Forms.Label lblFamily = new System.Windows.Forms.Label();
frm.GrpBox_CCU.Controls.Add(lblFamily);
lblFamily.Text = ": " + sheft_personal[a, 41];//فامیلی شخص
lblFamily.AutoSize = true;
lblFamily.Visible = true;
lblFamily.ForeColor = System.Drawing.Color.Black;
lblFamily.Location = new System.Drawing.Point(xf, yf);

System.Windows.Forms.Label lblNumber = new System.Windows.Forms.Label();
frm.GrpBox_CCU.Controls.Add(lblNumber);
lblNumber.Text = sheft_personal[a, 38];//تعداد شیفتهای کد99 شخص
lblNumber.AutoSize = true;
lblNumber.Visible = true;
lblNumber.ForeColor = System.Drawing.Color.Black;
lblNumber.Location = new System.Drawing.Point(xn, yn);
if (yf < 70)
{
yf += 25;
yn += 25;
}
else if (xf == 350)
{
xf = 220; xn = 200;
yf = 15; yn = 15;
}
else
{
xf = 90; xn = 70;
yf = 15; yn = 15;
}
}
}

مهرداد_
چهارشنبه 01 خرداد 1392, 00:34 صبح
خب شما میای و در فرم اصلیت مثلا توی رویداد کلیک button1 ابتدا از اون کلاسی که توش متد CCU_LablesMetod رو نوشتی یه نمونه میسازی بعد با استفاده از اون نمونه ، این متد رو فراخوانی میکنی

مثلا نام کلاست class1 هستش


private void button1_Click(object sender, EventArgs e)
{
class1 cls1=new class1();
cls1.CCU_LablesMetod(argoman1,argoman2,,argomanN)

}

csharpdoost
چهارشنبه 01 خرداد 1392, 01:06 صبح
اگه دقت کرده باشید این متد مقدار میگیره. از کجا؟ در داخل خود کلاس محاسبات انجام میشه و مقادیر بدست اومده را به این متد پاس میده . حالا اگه از داخل برنامه اصلی بخواهیم این متد رو فراخوانی کنیم باید بهش مقدار هم بدیم که این مقدار در داخل کلاس قبلی ایجاد میشه یعنی ما باید مقادیر را از اون کلاس بگیریم و متد همون کلاس رو صدا کنیم و مقدار رو بهش پاس بدیم. این چه کاریه دور خودمون بچرخیم؟
مقدار توی همون کلاس ایجاد میشه همونجا هم متد رو صدا میکنیم و مقدار رو بهش میدیم.