PDA

View Full Version : ایجاد contact جدید در برنامه دفترچه تلفن و درج در Datagrid



black_shadow
یک شنبه 27 دی 1394, 13:29 عصر
ممنونم از همه شما
من الان دارم تو قسمت ادد کانتکت کار میکنم
این عکس فرم
http://uupload.ir/files/2ypa_add.jpg (http://uupload.ir/)

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

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;
using System.Drawing;

namespace telephone_book
{
public partial class Addcontact : Form
{
public Addcontact()
{
InitializeComponent();
}
public static string[] contact = new string[7];
public static int[] contact_number= new int[1];

private void btnExite_Click(object sender, EventArgs e)
{
this.Close();
}

private void btn_AddForm_Click(object sender, EventArgs e)
{
contact[0]= txtName.Text;
contact[1] = txtFamily.Text;
contact[2] = txtPhonNumber_static.Text;
contact[3] = txtMobil_Number.Text;
contact[4] = txtMail.Text;
contact[5] = txtHome_Location.Text;
contact[6] = txtWork_Location.Text;

}


}
}
اگر تو تعریف متغیر و ... مشکلی هست بگین
آرایه هارو اونطوری تعریف کردم که بعدا بتونم تو فرم های دیگه بهش دسترسی داشت باشم نمیدونم نحوه تعریف درسته یا نه

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

black_shadow
یک شنبه 27 دی 1394, 17:04 عصر
یه سوال دیگه
آیا دیتا گرید ویو بدون دیتابیس هم کار میکنه؟
اگه کار میکنه من چطوری میتونم از فرم Addcontact خودم که کدش بالاس
ورودی های که گرفتم رو بریزم تو دیتا گریدی که تو یه فرم دیگس؟
ممنون میشم راهنمایی کنین

CsharpNevisi
یک شنبه 27 دی 1394, 23:11 عصر
سه تا روش برای این کار برات نوشتم .. خیلی هم راحته :D

black_shadow
یک شنبه 27 دی 1394, 23:48 عصر
سه تا روش برای این کار برات نوشتم .. خیلی هم راحته :D

داداش من تازه واردم با این کدا گیج میشم اگه ممکنه یه روش آسونو واسم توضیح بده

black_shadow
یک شنبه 27 دی 1394, 23:57 عصر
مثلا این کد فرم contactمنه
من با آرایه اومدم دونه دونه فیلدهارو از کاربر گرفتم
حالا داده های که کاربر وارد کرده هرکودوم توآرایه با اندیس خودشون هستن
پس در واقعه باید من این آرایه رو رو دیتا گرید فرم دیگه نشون بدم

کد فرم کانتکت
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;
using System.Drawing;

namespace telephone_book
{
public partial class Addcontact : Form
{
public Addcontact()
{
InitializeComponent();
}
public static string[] contact = new string[7];
public static int[] contact_number = new int[1];
public static string addres_pic;
// public string[] contact_form
// {
// get
// {
// return this.
// }
// }
// list_contact f_list = new list_contact();
private void btnExite_Click(object sender, EventArgs e)
{
this.Close();
}

private void btn_AddForm_Click(object sender, EventArgs e)
{
contact[0] = txtName.Text;
contact[1] = txtFamily.Text;
contact[2] = txtPhonNumber_static.Text;
contact[3] = txtMobil_Number.Text;
contact[4] = txtMail.Text;
contact[5] = txtHome_Location.Text;
contact[6] = txtWork_Location.Text;

// f_list.dtagrid.name.text = contact[0];
}



private void btnLoad_pic_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
addres_pic = openFileDialog1.FileName;

}
pictureBox1.Image = Image.FromFile(addres_pic);
}

private void Addcontact_Load(object sender, EventArgs e)
{
// pictureBox1.Image = Image.FromFile(addres_pic);
// pictureBox1.Image = Image.FromFile(addres_pic);
}


}




}

یه فرمی هم دارم به اسم لیست کانتکت که میخوام تو اون نشون داده بشه اگه میشه رو همین نشون بده
اینم پرژه کامل خودت نگاه بنداز
user : Admin
pass : pejman

http://www.uplooder.net/files/527311aa13375b327b76d955a076d9cf/telephone_book.rar.html (http://www.uplooder.net/files/527311aa13375b327b76d955a076d9cf/telephone_book.rar.html)

reza_ali202000
دوشنبه 28 دی 1394, 00:12 صبح
سلام دوست عزیز.
شما ابتدا تعدادی رو که میتونی از ورودی بگیری(منظور حداکثر افراد) رو مشخص کن.
یعنی چی؟ یعنی به جای اینکه آرایتون رو یک بعدی تعریف کنی، دو بعدی تعریف کن. اگه هم بلدی با پونتر کار کنی که تعداد نامحدود بگیره چه بهتر.
public static string[] contact = new string[7];
public static string[,] contact = new string[7,10];

بجای خط اولی دومی رو بنویس. اینجوری میتونی تا ده نفر رو ذخیره کنی.
حالا یه شمارنده هم بزار مثلا ایکس. حالا هردفه که دکمه ثبت زده شد یکی به این شمارنده اضاف بشه.
private void btn_AddForm_Click(object sender, EventArgs e) {
contact[0,x] = txtName.Text;

contact[1,x] = txtFamily.Text;

contact[2,x] = txtPhonNumber_static.Text;

contact[3,x] = txtMobil_Number.Text;

contact[4,x] = txtMail.Text;

contact[5,x] = txtHome_Location.Text;

contact[6,x] = txtWork_Location.Text;


x++;

}


بعدش برا خوندنش میتونی از حلقه استفاده کنی از صفر تا ایکس
اگه جاییش مبهمه بگید تا دوباره راهنماییتون کنم.

black_shadow
دوشنبه 28 دی 1394, 00:28 صبح
داداش ممنون
میشه بگین حالا من این اطلاعات رو چطوری تو فرو دیگه و تو گرید ویو بریزم؟

اشاره گر بلد نیستم

reza_ali202000
دوشنبه 28 دی 1394, 00:52 صبح
اینو ببین. فک کنم یه چیزایی بیاد تو دستت.

black_shadow
دوشنبه 28 دی 1394, 12:52 عصر
اینو ببین. فک کنم یه چیزایی بیاد تو دستت.

سلام
دیشب انقد خوابم میومد گیج بودم

داداش میشه کد هاتو با جزیات توضیح بدی میخوام یاد بگیرم نمیخوام از کد شما تقلید کنم

باز شرمنده که انقد من گیج هستم

reza_ali202000
سه شنبه 29 دی 1394, 03:17 صبح
توی فرم اول یه ارایه سه در ده تعریف کردم. وقتی که فرم دوم نمایش داده میشه،یه ارایه سه در یک بعدی هس داخلش. وقتی دکمه ثبت میزنی تکس ها رو میریزه توی اون ارایه و فرم بسته میشه. به محض اینکه بسته شد برنامه برمیگرده فرم اول و اون ارایه رو میریزه توی ارایه اولیه. یه واحد هم به شمارنده اضاف میشه. توی همین مرحله برا نمایشش میاد دیتاگرید رو خالی میکنه.به تعداد اطلاعاتی که توی ارایه هس ردیف میسازه. بعد با یه حلقه تمام اطلاعات ارایه رو میریزه توی دیتاگرید.

black_shadow
پنج شنبه 01 بهمن 1394, 00:08 صبح
دیگه نمیدونم چرا کار نمیکنه برنامم
اطلاعات رو به دیتا گرید انتقال نمیده ممنون میشم یکی مشکل رو بگه بهم

این فرم ادد کانتکت


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 telephone_book
{
public partial class Addcontact : Form
{
public Addcontact()
{
InitializeComponent();
}
public string[] contact = new string[7];

// public static int[] contact_number = new int[1];
public static string addres_pic;
// public string[] contact_form
// {
// get
// {
// return this.
// }
// }
// list_contact f_list = new list_contact();
private void btnExite_Click(object sender, EventArgs e)
{
this.Close();
}

private void btn_AddForm_Click(object sender, EventArgs e)
{



textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
contact[0] = textBox1.Text;
contact[1] = textBox2.Text;
contact[2] = textBox3.Text;
contact[3] = textBox4.Text;
contact[4] = textBox5.Text;
contact[5] = textBox6.Text;
contact[6] = textBox7.Text;
MessageBox.Show("اطلاعات شما با موفقیت ثبت گردید","ثبت اطلاعات");



// contact[1] = txtFamily.Text;

// contact[2] = txtPhonNumber_static.Text;

// contact[3] = txtMobil_Number.Text;

// contact[4] = txtMail.Text;

// contact[5] = txtHome_Location.Text;

// contact[6] = txtWork_Location.Text;
// MessageBox.Show("name :: " + contact[0] +" ::"+contact[1]);






}



private void btnLoad_pic_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
addres_pic = openFileDialog1.FileName;

}
pictureBox1.Image = Image.FromFile(addres_pic);
}

private void Addcontact_Load(object sender, EventArgs e)
{

}


}




}


اینم کد فرم لیست که تو اینجا دیتا گرید هست و باید نمایش داده بشه

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 telephone_book
{
public partial class list_contact : Form
{
public list_contact()
{
InitializeComponent();
}
public static string[,] contact = new string[10, 7];
int x;
private void list_contact_Load(object sender, EventArgs e)
{
Addcontact frm = new Addcontact();
contact[x, 0] = frm.contact[0];
contact[x, 1] = frm.contact[1];
contact[x, 2] = frm.contact[2];
contact[x, 3] = frm.contact[3];
contact[x, 4] = frm.contact[4];
contact[x, 5] = frm.contact[5];
contact[x, 6] = frm.contact[6];
x++;
//show data gride
dataGridView1.Rows.Clear();
dataGridView1.Rows.Add(x);
for (int i = 0; i < x; i++)
{
dataGridView1.Rows[i].Cells[0].Value = contact[i, 0];
dataGridView1.Rows[i].Cells[1].Value = contact[i, 1];
dataGridView1.Rows[i].Cells[2].Value = contact[i, 2];
dataGridView1.Rows[i].Cells[3].Value = contact[i, 3];
dataGridView1.Rows[i].Cells[4].Value = contact[i, 4];
dataGridView1.Rows[i].Cells[5].Value = contact[i, 5];
dataGridView1.Rows[i].Cells[6].Value = contact[i, 6];
}
}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}



}
}


ممنون میشم یکی با دلیل بهم توضیح بده

reza_ali202000
پنج شنبه 01 بهمن 1394, 04:31 صبح
توی فرم اول چرا قبل از برداشتن اطلاعات اونا رو پاک میکنید!

textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
contact[0] = textBox1.Text;
contact[1] = textBox2.Text;
contact[2] = textBox3.Text;
contact[3] = textBox4.Text;
contact[4] = textBox5.Text;
contact[5] = textBox6.Text;
contact[6] = textBox7.Text;

توی کد دومی که گذاشتین چرا فرم رو شو نکردین!
ببینید برنامه ای رو که فرستادم جاهای دستورات رو دقت کنید. ببینید توی چه توابعی چه دستوراتی فراخوانی شده.
تا زمانی که فرو کانتکت فراخوانی نشه هیچ اطلاعاتی به اول برنمیگردونه.
یکمی دقت کنید راحت میتونید کار رو انجام بدید.

black_shadow
پنج شنبه 01 بهمن 1394, 10:35 صبح
توی فرم اول چرا قبل از برداشتن اطلاعات اونا رو پاک میکنید!

textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
textBox7.Clear();
contact[0] = textBox1.Text;
contact[1] = textBox2.Text;
contact[2] = textBox3.Text;
contact[3] = textBox4.Text;
contact[4] = textBox5.Text;
contact[5] = textBox6.Text;
contact[6] = textBox7.Text;

توی کد دومی که گذاشتین چرا فرم رو شو نکردین!
ببینید برنامه ای رو که فرستادم جاهای دستورات رو دقت کنید. ببینید توی چه توابعی چه دستوراتی فراخوانی شده.
تا زمانی که فرو کانتکت فراخوانی نشه هیچ اطلاعاتی به اول برنمیگردونه.
یکمی دقت کنید راحت میتونید کار رو انجام بدید.



داداش کد منو تست کن بریک پوینت بذار
میبینی که فرم اد کانتکت به درستی کار میکنه
ولی اون یکی فرم کار نمیکنه
داداش نمیخوام وقتی کاربر رو فرم ادد کانتکت هست فرم لیست هم بالا بیاد
میخوام کاربر داده خودشو وارد کنه و هر وقت دلش خواست بره دکمه فرم رو بزنه

black_shadow
پنج شنبه 01 بهمن 1394, 11:08 صبح
کسی نیست مشکله منو بگه

CsharpNevisi
پنج شنبه 01 بهمن 1394, 11:33 صبح
خب من که کدشو برات نوشته بودم :|

black_shadow
پنج شنبه 01 بهمن 1394, 11:38 صبح
خب من که کدشو برات نوشته بودم :|
از اون کد چیزی نفهمیدم
میشه بگین کد من مشکلش کجاس؟

CsharpNevisi
پنج شنبه 01 بهمن 1394, 12:57 عصر
خب قبل از این که آرایه رو پر کنی داری تکست باکس هارو خالی میکنی که یکی از دوتان هم اشاره کرد ... :|

محمد آشتیانی
پنج شنبه 01 بهمن 1394, 13:05 عصر
سلام
کل پروژتو بصورت zip شده پیوست کن لطفا

black_shadow
پنج شنبه 01 بهمن 1394, 13:09 عصر
خب قبل از این که آرایه رو پر کنی داری تکست باکس هارو خالی میکنی که یکی از دوتان هم اشاره کرد ... :|

دادا همونو برداشتم و تست کردم بازم کار نمیکنه
اگه ممکنه خودت تست کن

اینم برنامه
میتونی جا های که میخوای رو کامنت کنی

من اون تکست هارو پاک کردم به خاطر اینکه وردی بعدی که خواستیم بگیریم تکست ها خالی باشه
http://up.ashiyane.org/images/o88esz63wbjigvx480rm.rar

black_shadow
پنج شنبه 01 بهمن 1394, 13:49 عصر
سلام
کل پروژتو بصورت zip شده پیوست کن لطفا

بفرمایین

http://up.ashiyane.org/images/o88esz63wbjigvx480rm.rar
نمیدنم چرا پیوست نشد تو سایت

CsharpNevisi
پنج شنبه 01 بهمن 1394, 15:24 عصر
خب من کدتو نگاه کردم ... اول باید اینو استاتیک تعریف کین
public string[] contact = new string[7];
در قدم دوم فرم کاتکت هات باید اینجوری باشه



public static string[,] contact = new string[10, 7];
int x;
private void list_contact_Load(object sender, EventArgs e)
{
contact[x, 0] = Addcontact.contact[0];
contact[x, 1] = Addcontact.contact[1];
contact[x, 2] = Addcontact.contact[2];
contact[x, 3] = Addcontact.contact[3];
contact[x, 4] = Addcontact.contact[4];
contact[x, 5] = Addcontact.contact[5];
contact[x, 6] = Addcontact.contact[6];
x++;
//show data gride
dataGridView1.Rows.Clear();
dataGridView1.Rows.Add(x);
for (int i = 0; i < x; i++)
{
dataGridView1.Rows[i].Cells[0].Value = contact[i, 0];
dataGridView1.Rows[i].Cells[1].Value = contact[i, 1];
dataGridView1.Rows[i].Cells[2].Value = contact[i, 2];
dataGridView1.Rows[i].Cells[3].Value = contact[i, 3];
dataGridView1.Rows[i].Cells[4].Value = contact[i, 4];
dataGridView1.Rows[i].Cells[5].Value = contact[i, 5];
dataGridView1.Rows[i].Cells[6].Value = contact[i, 6];
}
}


سومندش .. اینطوری فقط میتونی یه نفرو تو لیستت داشته باشه ... !!!
اصلا کارت درست واصولی نیست .. !!!
به نظر من تو باید یه جوری کد بزنی که وقتی یه برنامه نویس کدتو میبینه پیشه خودش بگه به به چه برنامه نویسه کار درستی بوده .. !!!
امروز تو ادامه همین تایپیک یه آموزش برات مینویسم ... یه برنامه شسته رفته و اصولی

black_shadow
پنج شنبه 01 بهمن 1394, 15:49 عصر
خب من کدتو نگاه کردم ... اول باید اینو استاتیک تعریف کین
public string[] contact = new string[7];
در قدم دوم فرم کاتکت هات باید اینجوری باشه



public static string[,] contact = new string[10, 7];
int x;
private void list_contact_Load(object sender, EventArgs e)
{
contact[x, 0] = Addcontact.contact[0];
contact[x, 1] = Addcontact.contact[1];
contact[x, 2] = Addcontact.contact[2];
contact[x, 3] = Addcontact.contact[3];
contact[x, 4] = Addcontact.contact[4];
contact[x, 5] = Addcontact.contact[5];
contact[x, 6] = Addcontact.contact[6];
x++;
//show data gride
dataGridView1.Rows.Clear();
dataGridView1.Rows.Add(x);
for (int i = 0; i < x; i++)
{
dataGridView1.Rows[i].Cells[0].Value = contact[i, 0];
dataGridView1.Rows[i].Cells[1].Value = contact[i, 1];
dataGridView1.Rows[i].Cells[2].Value = contact[i, 2];
dataGridView1.Rows[i].Cells[3].Value = contact[i, 3];
dataGridView1.Rows[i].Cells[4].Value = contact[i, 4];
dataGridView1.Rows[i].Cells[5].Value = contact[i, 5];
dataGridView1.Rows[i].Cells[6].Value = contact[i, 6];
}
}


سومندش .. اینطوری فقط میتونی یه نفرو تو لیستت داشته باشه ... !!!
اصلا کارت درست واصولی نیست .. !!!
به نظر من تو باید یه جوری کد بزنی که وقتی یه برنامه نویس کدتو میبینه پیشه خودش بگه به به چه برنامه نویسه کار درستی بوده .. !!!
امروز تو ادامه همین تایپیک یه آموزش برات مینویسم ... یه برنامه شسته رفته و اصولی


داداش ممنن میشم اون آموزشو بذارید

ولی در مورد گفته های شما
داداش تو اون قسمت نیازیم به
addcontact.contact[0]
نبود چون از فرم مورد نیاز یه نمونه ساخته بودم
Addcontact frm = new Addcontact();
داداش بعدش باز این کدت کار نمیکنه و چیزی تو دیتا گرید نمایش نمیده

چرا 1نفرو میتونم داشته باشم ؟
مگه این حلقه نمیتونه ورودی بگیره

for (int i = 0; i < x; i++) {
dataGridView1.Rows[i].Cells[0].Value = contact[i, 0];
dataGridView1.Rows[i].Cells[1].Value = contact[i, 1];
dataGridView1.Rows[i].Cells[2].Value = contact[i, 2];
dataGridView1.Rows[i].Cells[3].Value = contact[i, 3];
dataGridView1.Rows[i].Cells[4].Value = contact[i, 4];
dataGridView1.Rows[i].Cells[5].Value = contact[i, 5];
dataGridView1.Rows[i].Cells[6].Value = contact[i, 6];
}

CsharpNevisi
پنج شنبه 01 بهمن 1394, 16:04 عصر
این کاریم که گفتم خودم کردم و نتیجه گرفتم .. ولی پروژه رو پاک کردم بعدش
تو دوباره داری از رو فرمت یه نمونه میسازی .. وقتی اینستنس جدید درست میکنی طبیعتا یه دونه
public string[] contact = new string[7];
جدید هم درست میشه .. با فرمی که داره ساخته میشه .. درسته ؟؟؟؟؟
گفته من هم درباره addcontact.contact[0] به این دلیل بود از مقادیر استاتیک نمیتونی بعد از نمونه سازی استفاده کنی .. منبع داده تو هم یک ارایه یک بعدی هستش و فقط یه شخص میتونه توش قرار بگیره .. !!!

اجازه بده آموزش و پروژه رو برات با توضیح قرار بدم ... بعدش اگه ایرادی تو کار بودم در خدمتم :چشمک: ..

black_shadow
پنج شنبه 01 بهمن 1394, 16:13 عصر
داداش به خدا قصد ایراد گرفتن نداشتم
آموزشه خودتونو بذارید
این پروژه خودمم مشکلشو برطرف کنید همینجا اسم آپبود کنید فقط هرجا مشکل بود واسم کامنت بذارید که بدونم کجارو اشتباه کرده بودم


تو اموزشه خودتونم سعی کنید از کدنویسی روانتر استفاده کنین و با توضیحات کامل ممنون

CsharpNevisi
پنج شنبه 01 بهمن 1394, 16:31 عصر
این پروژه خودت .. !!! :)
http://s6.picofile.com/file/8234554484/telephone_book.rar.html

CsharpNevisi
پنج شنبه 01 بهمن 1394, 17:17 عصر
خب سرم خیلی شلوغ بود وی قول داده بودم .. !!!

1 - یه پروژه درست میکنیم .. با نام دلخواه

2 - یک کلاس با نام Contacts درست میکنیم با پراپرتی های فوق .. مطابق شکل های زیر

138540
138541
توجه داشته باش که هم کلاس هم پراپرتی هاش پابلیک هستند .. !!!

خب این کلاس چیه ؟ این کلاس موجودیت ما هستش .. مثلا موجودیت مخاطب که شامل نام .. نام خانوادگی و تلفن هستش .. در اصطلاح بهش میگیم مدل (Model) .. !!!

3 - حالا یه کلاس میخواییم که استاتیک باشه .. و لیست مدل هامونو تو خودش نگه داره ... بدنش میشه مثل شکل زیر

138542

یه لیست استاتیک از مدل هامون داره .. میتونیم مثلا 10 تا مدل از 10 تا مخاطب درست کنیم و داخل این بریزیم ..

4 - خب حالا فرم درج مخاطب رو درست میکنیم مانند شکل زیر

138543

تو رویداد دکمه ها این کدارو مینویسیم :


private void button1_Click(object sender, EventArgs e)
{
Contacts contact = new Contacts();
contact.Name = txtName.Text;
contact.Famiy = txtFamily.Text;
contact.Tell = txtTell.Text;
StaticValues.ContactsList.Add(contact);
txtFamily.Text = txtName.Text = txtTell.Text = string.Empty;
MessageBox.Show("فرد مورد نظر اضافه شد ", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Information);
}


private void button2_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}


کاملا مشخصه که چیکار کردم .. نیاز به توضیح ندیدم

اینم کد فرم دو
dataGridView1.DataSource = StaticValues.ContactsList;
dataGridView1.Refresh();


تمام ..

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

black_shadow
شنبه 03 بهمن 1394, 20:57 عصر
داداش ممنن میشم اون آموزشو بذارید

ولی در مورد گفته های شما
داداش تو اون قسمت نیازیم به
addcontact.contact[0]
نبود چون از فرم مورد نیاز یه نمونه ساخته بودم
Addcontact frm = new Addcontact();
داداش بعدش باز این کدت کار نمیکنه و چیزی تو دیتا گرید نمایش نمیده

چرا 1نفرو میتونم داشته باشم ؟
مگه این حلقه نمیتونه ورودی بگیره

for (int i = 0; i < x; i++) {
dataGridView1.Rows[i].Cells[0].Value = contact[i, 0];
dataGridView1.Rows[i].Cells[1].Value = contact[i, 1];
dataGridView1.Rows[i].Cells[2].Value = contact[i, 2];
dataGridView1.Rows[i].Cells[3].Value = contact[i, 3];
dataGridView1.Rows[i].Cells[4].Value = contact[i, 4];
dataGridView1.Rows[i].Cells[5].Value = contact[i, 5];
dataGridView1.Rows[i].Cells[6].Value = contact[i, 6];
}



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

CsharpNevisi
شنبه 03 بهمن 1394, 21:13 عصر
چون تو فرم Addcontact یه ارایه یک بعدی داره با نام contact و ارایه دو بعدیت از اون ارایه استفاده میکنه .. ثانیا تو متغییر x استاتیک نیست و هر سری که فرم نمایش داده میشه اون دوباره تعریف میشه با مقدار 0 و فقط خونه صفرم مقدار دهی میشه .... !!!

اینارم درست کنی برنامه اینطوری کار میکنه که تو باید یه نفر اضافه کنی .. بعد فرم نمایش رو باز کنی تا یه نفر ادد شه .. بعد دوباره ببندیش و یه نفر دیگه اضافه کنی بعدش دوباره فرم نمایش رو باز کنی تا فرد بعدی اد شه . باز ببندیش .. اگه سه نفرو اضافه کنی و فرم نمایش رو باز کنی فقط نفر سوم اد میشه

black_shadow
شنبه 03 بهمن 1394, 23:06 عصر
پس چیکار کنم به نظرت

CsharpNevisi
یک شنبه 04 بهمن 1394, 07:31 صبح
اصلا این کار و این روش قشنگ نیست ... من که خیلی شسته رفته بهت گفتم چجوری کار کنی

black_shadow
یک شنبه 04 بهمن 1394, 14:10 عصر
داداش حرفت درسته

من میام فرم لیست رو به مقدار ورودی که گرفتم بازو بسته میکنم تمام ورودی هارو نشون میده
مثلان 1وردی بدم علی و دومین وردی رو بم حسین
اگر لیست نمایش رو بزنم فقط علی نمایش داده میشه و بعد باید لیست رو ببندم و باز کنم تا حسین هم نمایش داده بشه
و یه مشکل دیگه اگر یه ورودی هم دشته باشیم و لیست رو ببندیم و باز کینیم چیند بار الکی واسه خودش ردیف میسازه
چیکار مکنم واسه این مشکل؟

black_shadow
یک شنبه 04 بهمن 1394, 16:47 عصر
کسی نیست راهنمایی کنه؟

black_shadow
یک شنبه 04 بهمن 1394, 18:47 عصر
کسی نیست مشکل منو بدونه که حلقه من یا دیتا گرید من چه مشکلی داره

CsharpNevisi
یک شنبه 04 بهمن 1394, 19:29 عصر
متغییر X رو استاتیک تعریف کن ... هر بار که مخاطب اضافه میشه تو خود همون فرم اضافه به ارایه دو بعدیت مقدار جدید بده ... و ایکس رو بیشتر کن یه دونه .. این کارارو بدونه باز کردن فرم مخاطب ها و تو فرم اضافه اجام بده
تو هر بار که فرم مخاطبین رو باز میکنی چه فرمت یک بعدیت مقدار نداشته باشه چ داشته باشه یه ردیف به دو بعدی اضافه میشه و باز هم برادرانه تکرار میکنم


این کد نویسی به درد نمیخوره .. هیچ جا براش ارزشی قائل نمیشن ...

سعی کن اضولی و منطقی کد بزنی اگه فقط در حد پروژه دانشجویی نیستی .. اگه میخوایی یه پروژه برای دانشگاهت ردیف کنی و با برنامه نویسی کار نداشته باشی که همینطوری ادامه بده ک نمره خروجی کارتو بگیری

black_shadow
دوشنبه 05 بهمن 1394, 00:23 صبح
داداش منظورت از اصولی کد زدن چیه میشه بیشتر توضیح بدی؟

CsharpNevisi
دوشنبه 05 بهمن 1394, 09:52 صبح
برو دنبال برنامه نویسی شی گرا .. خودت متوجه میشی .. من یه مثال خیلی خیلی کوچولو برات زدم .. بهترین روشی که تو این نرم افزار میتونی استفاده کنی ..

black_shadow
دوشنبه 05 بهمن 1394, 11:29 صبح
باشه
داداش من کاملا تو این قسمت گیج شدم و مغزم دیگه یاری نمیکنه که بخوام خودم اینو بنویسم