PDA

View Full Version : سوال: Enter در Datagridview



shgroup
یک شنبه 16 تیر 1387, 00:23 صبح
من سوالی دارم که مطمئن هستم به چشم بسیاری از شما دوستان در برنامه های مختلف مثل امور مالی بانکها و ادارات و سازمان های مختلف خورده ...

من توی پروژم از یک textbox استفاده کرده ام که زمانی که روی textbox کلید insert رو می زنیم یک فرم جدید باز می شه که توی اون فرم یک دیتاگرید وجود داره و به دیتابیس بایند شده .

حالا می خوام زمانی که کاربر روی دیتاگرید فرم دوم بر روی Rows مورد نظر کلید Enter رو فشار می ده مقدار یا مقادیر اون سطر به textbox فرم اول انتقال داده بشه ؟

shgroup
یک شنبه 16 تیر 1387, 14:23 عصر
لطفا اگه کسی می دونه راهنماییم کنه - مرسی

hassan_h
دوشنبه 17 تیر 1387, 00:20 صبح
در اتفاق دیتا گرید روی cellclick دوبار کلیک کن و کد زیر رو بنویس
string sn1 = dataGridView1.CurrentRow.Cells[0].Value.ToString
string sn2 = dataGridView1.CurrentRow.Cells[2].Value.ToString
...

shgroup
دوشنبه 17 تیر 1387, 00:51 صبح
در اتفاق دیتا گرید روی cellclick دوبار کلیک کن و کد زیر رو بنویس
string sn1 = dataGridView1.CurrentRow.Cells[0].Value.ToString
string sn2 = dataGridView1.CurrentRow.Cells[2].Value.ToString
...

سلام دوست عزیز
مرسی که به سوال من پاسخ دادی
اما یک سوال با این کدی که شما نوشتی من فکر کنم فقط مقدار Cell ها رو تک تک به رشته تبدیل کردی ولی در صورتی که من می خوام به Textbox در فرمی دیگر بفرستم و البته باید با کلید Enter این کار انجام بشه نه CellClick ؟!

لطفا کمی برام توضیح بده - مرسی

jeus
دوشنبه 17 تیر 1387, 03:23 صبح
اینجور که من فهمیدم دوست من شما میخواهید بعد از زدن کلید enter یک پنجره جدید باز شه که درون این پنجره یک دیتا گرید داشته باشه و شما با استفاده از کلید های بالا و پایین اونو انتخاب کنی و در انتها با زدن کلید enter داده ات را درون textbox نمایش بدی و شما میخواهید یک سطر کامل را اطلاعاتش را برگردانی داخل فرم اولت ؟
اگر این کار ار میخوای بکنی برای event اینتر در jtable باید تعریف کنی و بعد از تعریف اون میتوانی از کلاس row استفاده کنی و از یک forٍeach هم استفاده کن و داد ه هایت را توی یک آرایه قرار بده و در انتها اونو به فرمت return کن و بعد آرایه ات را توی textBox هات بچین
امیدوارم راهنماییم بدردت خورده باشه

jeus
دوشنبه 17 تیر 1387, 03:25 صبح
یک راه دیگه هم اینه که تو کلید اون سطر را در بیاری و به form اولت بفرستی و اونجا select مناسب را از دیتا بیس انجام بدی و اطلاعاتت را درون textBox هات قرار بدی
موفق باش

shgroup
دوشنبه 17 تیر 1387, 12:37 عصر
من از این کد استفاده کردم ولی کار نمی کنه !؟ :متفکر:

private void Form2_KeyPress(object sender, KeyPressEventArgs e)
{
TextBox t = new TextBox();
if (e.KeyChar == Convert.ToChar(Keys.Enter))

{
case 1:

t = (TextBox)Application.OpenForms["Form1"].Controls["groupBox1"].Controls["textBox1"];
t.Text = dataGridView1.CurrentRow.Cells["codeDataGridViewTextBoxColumn"].Value.ToString();
this.Close();
break;
}
}
}
if (e.KeyChar==Convert.ToChar(Keys.Escape)) this.Close();
}

jeus
دوشنبه 17 تیر 1387, 13:07 عصر
اول از همه بهت بگم که چه بگویی میتوانم و چه بگویی نمیتوانم هر دو را درست گفته ای
دوست من انتقال از یک فرم به فرم دیگر به همین راحتیه و شما فکر میکنم بعد از بار کردن صفحه دوم که dataGrideView شما در اون قرار داره میتونی برای سطرها event دابل کلیک تعریف کنی که بعد از آن اطلاعات سطر را دخیره کرده و بعد پنجره را ببنده به همین راحتی برگرداندن اطلاعات را هم که فکر میکنم از روی برنامه زیر راحت بتونی یاد بگیری برنامه هم کافیه توی پنجره دوم یک text وارد کنی و بعد از بستن به فرم یک منتقل میشه
امیدوارم به دردت بخوره

jeus
دوشنبه 17 تیر 1387, 13:15 عصر
دنبال foreach برای پیدا کردن سطر مورد نظرت هم بگرد گفتم تو میتونی یک row را انتخاب کنی و با استفاده از کلاس cell درون اون row پیمایش کنی و اطلاعات را از توی اون در بیاری و داخل یک ارایه قرار بدی و بعد اون آرایه را Return کنی و برگردانی و توی form اولت از اون استفاده نمایی هیچ کاری نداره من میدونم الان شما چه وضعیتی دارید چون خودم هم همینجور بودم ببین چیز عجیب و شاخی نیست برنامه نویسی دقیقا همون چیزی هست که داری میشنوی و شما تنها باید دقت کنی استفاده کنی از راهنماییها همینو بس
برنامه نویسی یکی از ساده ترین کارها توس دنیا است (البته اگر اینترنت داشته باش )
موفق باشی

jeus
سه شنبه 18 تیر 1387, 10:37 صبح
برای dataGrideView برای event keydow در فرم دومت این کد را بنویس و هر کار دوست داری باهاش بکن


private void DGV_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{

}
}

حالشو ببر دوست من

Mahdi.Kiani
سه شنبه 18 تیر 1387, 11:04 صبح
سلام
مثالی که ........ این پست ......... (http://barnamenevis.org/forum/showpost.php?p=543181&postcount=24) گذاشتم را با دقت بررسی کنید...
نحوه صحیح فرستادن اطلباعات از فرم2 به فرم اول...
علاوه بر این می توانید با گسترش دادن اون مثال و نیز کلاس مشتق شده از EventArgs علاوه بر رعایت اصول صحیح به خواسته خود نیز برسی

علاوه بر این خواندن .... این مقاله ... (http://barnamenevis.org/forum/showpost.php?p=449646&postcount=32) و بررسی مثال های همراه آن می تونه در رفع ابهام بسیاری از مسائل که احتمالا در آینده نیز با آن ها مواجه خواهید شد، کمک شایانی بکنه
موفق باشید

shgroup
چهارشنبه 19 تیر 1387, 11:12 صبح
r.kiani عزیز
ممنون از پاسخ شما
به کمک شما و دوست خوبم rahman_ramin عزیز مشکم حل شد
مرسی