PDA

View Full Version : سوال: تغيير عملكرد دكمه اينتر بر روي ديتاگريدويو



mohammad diba
چهارشنبه 19 فروردین 1388, 09:18 صبح
سلام من ميخوام وقتي روي گريد دكه اينتر فشار داده شد اطلاعات سطر جاري رابه فرم ديگه انتقال دهم ولي وقتي اينتر را مي زنم كرسر يه رديف جابجا مي شه چه كار كنم كه اين كار انجام نشه و كرسر رديف ها جابجا نشه؟

esmartiz_red
چهارشنبه 19 فروردین 1388, 18:18 عصر
اول اینکه شما با قرار دادن کد زیر در رویداد keydown دیتاگریدویو این کار و انجام می دین که دیگر سطری جا به جا نشه
e.handle = true

rnm123
چهارشنبه 19 فروردین 1388, 18:37 عصر
دوست عزیز باری این کار همانطوری که دوست عزیزمان esmartiz_red (http://barnamenevis.org/forum/member.php?u=49708) توضیح داده اند کافی است در رویداد keyDown دیتاگریدویو کد زیر را وارد نمائید


if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
button1.Focus();
}

button1 نام کنترلی است که میخواهید با زدن کلید اینتر فوکوس به آن منتقل شود که در این مثال یک button است البته میتوانید هر کار دیگری هم که خواستید از قبیل قرار دادن مقادیر در متقیرها و بستم فرم را هم انجام دهید

bita_naz
چهارشنبه 19 فروردین 1388, 19:48 عصر
این کلاس همون گرید اصلی VS هست فقط با زدن اینتر به سل بعدی میره بجای ریف بعدی



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Phoenix
{
public class MyDataGridView : System.Windows.Forms.DataGridView
{

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{

switch (keyData)
{
case System.Windows.Forms.Keys.Enter:
return (base.ProcessTabKey(System.Windows.Forms.Keys.Tab) );
default:
return base.ProcessCmdKey(ref msg, keyData);
}

}
}
}