PDA

View Full Version : چگونه بین فیلد های DataGridview با اینتر حرکت کنم؟



stealer2007
جمعه 17 اسفند 1386, 20:58 عصر
سلام دوستان.

ببخشید چه جوری میشه توی Datagridview به جای رفتن به فیلد دیگر با استفاده از tab از enter استفاده کنم؟:عصبانی++:

bad_boy_2007
جمعه 17 اسفند 1386, 21:36 عصر
سلام دوستان.

ببخشید چه جوری میشه توی Datagridview به جای رفتن به فیلد دیگر با استفاده از tab از enter استفاده کنم؟:عصبانی++:
خصیصه ReadOnly ستون رو False کن و در رخداد KeyDown گرید ویو کاراکتر وارد شده رو تو ستون اضافه کن و اگر Enter زد برو ستون بعدی !!!

hooooman
شنبه 18 اسفند 1386, 02:54 صبح
این کلاسو به پروژت اضافه کن و بجای Datagridview از MyDatagridView استفاده کن



PublicClass MyDataGridView
Inherits System.Windows.Forms.DataGridView
Private isAutoCellMoved AsBoolean = False
ProtectedOverridesFunction ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, _
ByVal keyData As System.Windows.Forms.Keys) AsBoolean
If (Me.CurrentCell.ColumnIndex <> Me.ColumnCount - 1) AndAlso (keyData = Keys.Enter) Then
ReturnMe.ProcessLeftKey(keyData)
EndIf
Try
ReturnMyBase.ProcessCmdKey(msg, keyData)
Finally
If keyData = Keys.Enter Then
IfMe.Rows.Count <> Me.CurrentCell.RowIndex + 1 Then
Me.CurrentCell = Me(0, Me.CurrentCell.RowIndex + 1)
isAutoCellMoved = True
EndIf
EndIf
EndTry
EndFunction
ProtectedOverridesFunction ProcessDataGridViewKey(ByVal e As System.Windows.Forms.KeyEventArgs) AsBoolean
If isAutoCellMoved Then
isAutoCellMoved = Not isAutoCellMoved
ReturnTrue
EndIf
If (Me.CurrentCell.ColumnIndex <> Me.ColumnCount + 1) AndAlso (e.KeyData = Keys.Enter) Then
ReturnMe.ProcessLeftKey(e.KeyCode)
EndIf
ReturnMyBase.ProcessDataGridViewKey(e)
EndFunction
EndClass