PDA

View Full Version : مبتدی: ذخیره مقدارهای تکس باکس به Array



farzad_c
پنج شنبه 06 فروردین 1394, 14:17 عصر
سلام دوستان
چیطوری میتونم مقدار های که داخل تکس باکس دارم مثلاً تکس باکس 1 و 2 و 3 را داخل یک Array ذخیره کنم بعد مقدار های داخل array را توسط Datagridview به نمایش بزارم

moh899
پنج شنبه 06 فروردین 1394, 14:51 عصر
سلام
پیشنهاد می کنم به جای آرایه از لیست استفاده کنی و به راحتی اونو به گرید بایند کنی

drsina
پنج شنبه 06 فروردین 1394, 14:51 عصر
اگه تعداد تکست باکسهات مشخصه میتونی از آرایه استفاده کنی ، ولی اگر مشخص نیست از list استفاده کن ...
یه کد خیلی انعطاف پذیر که هرچی textbox هست را از 1 تا n پوشش میده :


DataTable ConvertListToDataTable(List<string[]> list)
{
// New table.
DataTable table = new DataTable();


// Get max columns.
int columns = 0;
foreach (var array in list)
{
if (array.Length > columns)
{
columns = array.Length;
}
}


// Add columns.
for (int i = 0; i < columns; i++)
{
table.Columns.Add();
}


// Add rows.
foreach (var array in list)
{
table.Rows.Add(array);
}


return table;
}
private void button1_Click(object sender, EventArgs e)
{
List<string[]> l = new List<string[]>();
foreach (Control t in this.Controls)
{
if (t is TextBox)
{
l.Add(new string[] {t.Text});
}
}
dataGridView1.DataSource = ConvertListToDataTable(l);





}

farzad_c
پنج شنبه 06 فروردین 1394, 14:55 عصر
ممنون دوستم
من تنها سه عدد تکس باکس دارم و یک عدد datagridview الان میخوام فقط محتوای سه تکس باکس بریزه تو آرایه بعد توسط دیتا گرد ویو نشون داده بشه

drsina
پنج شنبه 06 فروردین 1394, 15:03 عصر
خب اون کدی که بالا نوشتم که خیلی بهتره !!! :ناراحت:
اینم کد جدید :

string[] array = new string[3];

array[0] = textBox1.Text;
array[1] = textBox2.Text;
array[2] = textBox3.Text;


dataGridView1.Columns.Add("Header", "HeaderText");
foreach (string item in array)
{
dataGridView1.Rows.Add(item);

}

farzad_c
پنج شنبه 06 فروردین 1394, 15:18 عصر
ممنون دوست عزیز
اگه بخوام اینو دو بعدی کنم چی من انجام دادم اما ایرور داد مثلا این شکلی

شماره اسم اسم پدر
1 احمد محمود
اما نشد ممنون میشم کمک کنید

drsina
پنج شنبه 06 فروردین 1394, 16:57 عصر
توو این مثال میتونی قسمت دوم و سوم رو آدرس تکست باکساشو عوض کنی :
string[,] array = new string[3,3];

array[0,0] = textBox1.Text;
array[0,1] = textBox2.Text;
array[0,2] = textBox3.Text;

array[1,0] = textBox1.Text;
array[1,1] = textBox2.Text;
array[1,2] = textBox3.Text;

array[2,0] = textBox1.Text;
array[2,1] = textBox2.Text;
array[2,2] = textBox3.Text;


dataGridView1.Columns.Add("Number", "Number");
dataGridView1.Columns.Add("Name", "Name");
dataGridView1.Columns.Add("FatherName", "FatherName");


for (int i = 0; i < 3; i++)
{
dataGridView1.Rows.Add(i,array[i,0],array[i,1]);


}