PDA

View Full Version : سفارشی کردن دیتا گرید



toopak
شنبه 31 مرداد 1388, 15:32 عصر
سلام به همگی
من یه دیتا گرید دارم که تو 2تا از ستون ها اطلاعات نمایش داده میشه و توی 1ستونش هم باید اطلاعات وارد بشه
کاری که میخوام بکنم اینه که وقتی کلید tab رو میزنیم فقط تو ستونی که میخواییم اطلاعات وارد بشه حرکت کنه و از روی 2ستونی که اطلاعات رو نمایش میدن پرش کنه
چه راهی داره؟

anooshiran
شنبه 31 مرداد 1388, 16:04 عصر
با سلام

ستونهايي رو كه اطلاعاتش رو از جدول ميگيري readonly كن

toopak
شنبه 31 مرداد 1388, 16:09 عصر
اینی که شما میگی فقط باعث میشه که نشه سلول های اون ستون رو ویرایش کرد
اما من میخوام وقتی tab رو میزنم کلا از روی اون سلول ها پرش کنه
چون لازمه که یه سری اطلاعات تو یکی از ستون ها وارد بشه
که در حال حاضر کاربر باید برای اینکه به سلول پایین بره 3تا tab بزنه که زیاد جال نیست

anooshiran
شنبه 31 مرداد 1388, 16:56 عصر
با سلام

كدهاي زير را چك كن




Private Sub dgv_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles dgv.KeyPress
If dgv.CurrentCell.ReadOnly Then ControlReadOnlyColumns()
End Sub
Private Sub ControlReadOnlyColumns()
Dim RowIndex As Int16 = dgv.CurrentCell.RowIndex
For Each col As DataGridViewColumn In dgv.Columns
If col.Index >= dgv.CurrentCell.ColumnIndex Then
If Not col.ReadOnly Then
dgv.CurrentCell = dgv.Item(col.Index, RowIndex)
End If
End If
Next
End Sub


البته لازم است بگويم جون براي اينكه بتوان currentcell تعريف كرد محدوديتهايي در نوع event ها نيز هست

toopak
شنبه 31 مرداد 1388, 17:00 عصر
ممنون
چک میکنم خبر میدم

toopak
شنبه 31 مرداد 1388, 17:33 عصر
ازتون ممنون
ولی با اجازه این کد رو استفاده کردم

Private Sub Dgv_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Dgv.KeyPress
If Dgv.CurrentCell.ReadOnly Then
If e.KeyChar = Chr(Keys.Tab) Then
SendKeys.Send("{Tab}")
End If
End If
End Sub
فکر میکنم سبک تر و کم هزینه تر باشه
به هرحال از شما هم تشکر میکنم