PDA

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



iranigirl1364
یک شنبه 21 تیر 1388, 15:38 عصر
با سلام:
چگونه می توان از یک سلول دیتا گرید در یک سطر در صورت خالی نبودن به سلول کناری (بعدی) در همان سطر از دیتا گرید در صورت فشردن کلید enter روی صفحه کلید منتقل شد؟
با تشکر و احترام فراوان

iranigirl1364
دوشنبه 22 تیر 1388, 13:21 عصر
با سلام:
آیا در دیتا گرید مانند textbox راهی برای منتقل شدن به سلول بعدی در همان سطر در صورت خالی نبودن سلول مانند کد زیر وجود ندارد؟
کد برای texr box:




private void txtPC_KeyDown(object sender, KeyEventArgs e)
{
if (txtPC.Text != "")
{
if (e.KeyCode == Keys.Enter)
txtName.Focus();


}
}



کد برای دیتا گرید:




private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if(dataGridView1.Rows[k].Cells[0].Value != null)
{
if(e.KeyCode==Keys.Enter)
{
??
}
}
}

به جای علامت سوال چه کدی باید قرار دهم؟

با تشکر و احترام فروان

iranigirl1364
پنج شنبه 25 تیر 1388, 08:58 صبح
باسلام:
چند روز است این کامنتو گذاشتم
کلی هم search کردم ولی چیزی پیدا نکردم
ممکنه یک نفر به سوالم جواب بده اگه امکان داره؟:ناراحت:
با تشکر و احترام فراوان

hozouri
پنج شنبه 25 تیر 1388, 10:16 صبح
یه کامپوننت براتون می ذارم که ساخته خودم هستش اوتوماتیک به سلول بعدی میره.

مزایا :
از نظر ظاهری هیچ فرقی با DataGridView نداره
یه خاصیت به نام InsertRow داره که اگر اون رو True کنید خودش یه سطر جدید باز می کنه و اوتوماتیک به اول سطر بعد میره.
اگر یک سلول به نام Record ایجاد کنید خودش اتوماتیک شماره سطرها رو درج می کنه.
با کلید میانبر F12 هم می تونید یه سطر رو Delete کنید و شماره سطر ها هم به طور اتوماتیک درست می شن.

معایب :
در حال حاظر فعلاً برای اینکه اتوماتیک به سلول بعدی بره حتماً باید Grid راست به چپ باشه البته توی نسخه بعدی این ایراد رو تصحیح می نمایم.

hozouri
پنج شنبه 25 تیر 1388, 10:17 صبح
البته اگر دیر به شما پاسخ دادم به این دلیل هست که من تازه تاپیک شما رو دیدم.

شرمنده که کمی معطل ماندید

Mohsen229266
پنج شنبه 25 تیر 1388, 19:13 عصر
سلام دوست عزیز تشکر از DLLی که گذاشتید اما
وقتی سطر جاری آخرین سطر باشه F12 زده بشه error میده
و فقط در حالت RightToLeft با فشردن کلید اینتر به cell بعدی میره
اگه لطف کنید کد قسمت اینترشو هم بزارید خیلی عالی میشه

iranigirl1364
یک شنبه 28 تیر 1388, 10:08 صبح
با سلام:
من dll شما را در قسمت add refrences اضافه کردم و در بالای فرمم هم این کد



using HozouriComponent;

را اضافه کردم
اما هر چه قدر امتحان کردم با کد های



HozouriComponent.DataGridViewH h = new DataGridViewH();


یا



HozouriComponent.DataGridViewH.DataGridViewControl Collection h = new DataGridView();


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

Mohsen229266
یک شنبه 28 تیر 1388, 11:02 صبح
دوست من در قسمت ToolBox روی یکی از Tabها راست کلیک و ChooseItems رو انتخاب کن بعدBrowseو بعد کامپوننتو اضافه کن ورژن جدید ترش رو جناب hozouri در این تایپیک قرار دادن (http://barnamenevis.org/forum/showthread.php?t=64210&page=31)

hozouri
یک شنبه 28 تیر 1388, 11:37 صبح
دوست عزیز اگر منظورتون از استفاده اینه من هیچ مشکلی ندارم . مشکل دقیقاً کجاست ...



DataGridViewH h = new DataGridViewH();
h.Visible = true;
h.Top = 0;
h.Left = 0;
h.Width = 100;
h.Height = 100;
this.Controls.Add(h);

iranigirl1364
یک شنبه 28 تیر 1388, 12:36 عصر
با سلام:
مشکلم حل شد
بی نهایت ممنون
با تشکر و احترام فراوان

milad_2577
چهارشنبه 19 خرداد 1389, 13:12 عصر
سلام. من خیلی به این کد نیاز دارم. اگه به من کمک کنید ممنون میشم. دوست دارم بدونم به جای علامت ؟ باید چه کدی رو بذارم