PDA

View Full Version : سوال: کلیک روی datagridview و انتقال به فرم دیگر



علی فتحی
یک شنبه 22 دی 1392, 22:53 عصر
سلام چگونه میتوان روی دیتاگرید فرم 2 کلیک کرد تا اطلاعات سلول امنتخاب شده در تکس باکس فرم یک قرار بگیره؟

sagggad
یک شنبه 22 دی 1392, 23:03 عصر
با عرض سلام
شما باید در Form2 داخل رویداد CellMouseClick مربوط به گریدویو کدهای زیر رو بنویسید به صورت زیر:

public void DataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
Form1.Default.TextBox2.Text = (string) (DataGridView1.Rows[e.RowIndex].Cells[0].Value);
}

موفق باشید:لبخندساده:

علی فتحی
یک شنبه 22 دی 1392, 23:20 عصر
مرسی از جوابتون ولی روی این گزینه اخطار میده
Default

ابته من زیر این رویدادنوشتم

privatevoid dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)

علی فتحی
یک شنبه 22 دی 1392, 23:46 عصر
لطفا جواب دهید ضروریه

khokhan
دوشنبه 23 دی 1392, 00:58 صبح
لطفا جواب دهید ضروریه
بدون اینکه خاصیت کنترولها رو دست کاری کنی فقط درفرم 2 و در رویداد SelectionChanged دیتاگرید ویو این دو خط رو بنویس والسلام :

Form1 f1 = (Form1)Application.OpenForms["Form1"];
f1.Controls["TextBox1"].Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();

علی فتحی
دوشنبه 23 دی 1392, 08:47 صبح
نشد اخطار داد

sagggad
دوشنبه 23 دی 1392, 10:10 صبح
شما ابتدا زیر Public Form1 کدهای زیر رابنویسید:

Form2 frm2 = new Form2();
frm2.frm = this;

سپس در Form2 و بالای Public Form2 کد زیر را بنویسید:

public Form1 frm;

سپس خصوصیت Modifiers تکس باکس در فرم اصلی را برابر Public قرار دهید
حالا با نوشتن این کدها از طریق Form2 به اشیاء فرم اصلی که Form1 است دسترسی دارید ...
حالا با نوشتن کد زیر در رویداد CellMouseClick میتوانید تکس باکس در فرم اصلی را برابر یک خانه از گریدویو بکنید:

frm.textBox1.Text = (string) (DataGridView1.Rows[e.RowIndex].Cells[0].Value);

علی فتحی
دوشنبه 23 دی 1392, 23:06 عصر
نشد جواب نداد

sagggad
دوشنبه 23 دی 1392, 23:09 عصر
چه مشکلی داره؟

علی فتحی
سه شنبه 24 دی 1392, 19:54 عصر
دقیقا دوبار اخطار بالارو میده

sohil_ww
سه شنبه 24 دی 1392, 20:07 عصر
دوست عزیر تکس باکس فرم 1 روز به صورت پابلیک تعریف کن و فرمتو به صورت یک آبجکت پاس بده به فرم دوم و وقتی رو گرید فرم دو کلیک شد مقدارو پاس بده به تکس باکس

اگه متوجه نشدی بگو نمونه بزارم برات

farzinc
سه شنبه 24 دی 1392, 20:27 عصر
جواب دوست مون آقا سجاد درسته فقط شما باید کدتو در رویداد CellMouseClick بنویسی نه در رویداد
dataGridView1_CellLeave همین

farhadscript
سه شنبه 24 دی 1392, 20:30 عصر
کد زیر رو اخرش اضافه کن

errordamage = "پدسگ ارور نده"
eror = application.getlasterror()
if (error ~= 0) then
errordamage
else
public void DataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
Form1.Default.TextBox2.Text = (string) (DataGridView1.Rows[e.RowIndex].Cells[0].Value);
}

بعضی مواقع باید از این کدا نوشت

علی فتحی
سه شنبه 24 دی 1392, 21:23 عصر
privatevoid dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)



{


//frm.textBox3.Text = (string)(dataGridView1.Rows[e.RowIndex].Cells[0].Value);

frm.Default.TextBox3.Text = (string)(dataGridView1.Rows[e.RowIndex].Cells[0].Value);

این دوتا کد هردو اخطار میده اجرا نمیشه .کد دومDefault ناشناخته است .زیرش خط قرمز میزنه

amir200h
سه شنبه 24 دی 1392, 21:52 عصر
سلام چگونه میتوان روی دیتاگرید فرم 2 کلیک کرد تا اطلاعات سلول امنتخاب شده در تکس باکس فرم یک قرار بگیره؟
بفرما!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

علی فتحی
چهارشنبه 25 دی 1392, 10:42 صبح
نشد منظور من این نبود فرم 1 فرم اصلی است .

khokhan
چهارشنبه 25 دی 1392, 14:42 عصر
نشد منظور من این نبود فرم 1 فرم اصلی است .
.................................................. .....................

momimomi
چهارشنبه 25 دی 1392, 15:00 عصر
.................................................. .....................

سلام
1-کار کد زیر که در سورس به کاربردید چیست؟

frm.MdiParent = (this);

2- لطفا یه توضیح در خصوص جدولی که بدون دیتابیس ایجاد کردین بدین
ممنون

علی فتحی
چهارشنبه 25 دی 1392, 15:22 عصر
دست گلت درد نکنه دقیقا همینو میخواستم

khokhan
چهارشنبه 25 دی 1392, 15:38 عصر
سلام
1-کار کد زیر که در سورس به کاربردید چیست؟

frm.MdiParent = (this);

2- لطفا یه توضیح در خصوص جدولی که بدون دیتابیس ایجاد کردین بدین
ممنون
راجع به سوال اول :این کد کاربرد بخصوصی نداره فقط مشخص میکنه که فرم فرزند داخل فرم والد باز بشه

واما سوال دوم : در فرم دوم یه دیتاتیبل ایجاد می کنیم و با یه حلقه for که تا 20 می شماره ردیفهایی رو دستی توی دیتا تیبل ایجاد می کنیم و بعد گرید رو به این دیتاتیبل وصل می کنیم