PDA

View Full Version : حرکت بوسیله فلشهای بالا و پایین و انتخاب بوسیله کلید Enter در DataGridView



Reza_Sunar
شنبه 16 اردیبهشت 1385, 11:47 صبح
سلام دوستان
من با DatatGridView یه مشکلی پیدا کردم. می خوام با فلشهای بالا و پایین تو DatatGridView حرکت کنم و بعد با زدن کلید اینتر بتونم مقدار ستونی از ردیفی رو که روش هستم رو بگیرم
البته باید بگم که دستور dgv.currentrow.index مقدار ردیف رو برمی گردونه و مین بخوبی می تونیم ازش استفاده کنم . مشکل من اینجاست که مقدار index ردیف آخر رو نتونستم تا حالا بگیرم. و مشکلم همون ردیف آخر هستش ...
لطفاً کمکم کنین ...

ali_kolahdoozan
شنبه 16 اردیبهشت 1385, 13:05 عصر
شما اول باید enter رو خفش کنی . چون با اینتر زدن یک رکورد میری پایین . بعد شماره ردیف رو بدست بیاری . اگه طرز ساکت کردنش برای grid بلدی که هیچ اگه نه بگو

Reza_Sunar
دوشنبه 18 اردیبهشت 1385, 06:11 صبح
دوست عزیز ممنون، ولی راستش من نمیدونم چطوری باید Enter رو غیر فعالش یا به قولتون خفه اش کنم. ممنون می شم اگه کمکم کنین.

Reza_Sunar
دوشنبه 18 اردیبهشت 1385, 17:24 عصر
من منتظرم ....

M.kavyani
دوشنبه 18 اردیبهشت 1385, 19:06 عصر
دوست عزیز ممنون، ولی راستش من نمیدونم چطوری باید Enter رو غیر فعالش یا به قولتون خفه اش کنم. ممنون می شم اگه کمکم کنین.
با سلام برای غیر فعال کردن اینتر در ایونت keypress گرید دستور زیر را بنویسد


Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress

If e.KeyChar = Chr(System.Windows.Forms.Keys.Enter) Then
e.Handled = True
End If
End Sub

Reza_Sunar
سه شنبه 19 اردیبهشت 1385, 10:04 صبح
دوست عزیز ممنون ...
شاید اگه مسئله رو روشنتر کنم بهتر کمکم کنین ...
لیست زیرو بعنوان DataGridView در نظر بگیرید
-----------------
| 1 | ملی |
-----------------
| 2 | ملت |
-----------------
| 3 | صادرات |
-----------------
| 4 | تجارت |
-----------------
به راحتی روی هر ردیف با فلشها حرکت می کنم و بعد از زدن کلید Enter مقدار dgvBankList.CurrentRow.Index مقدار ردیفی هست که من روش قرار دارم.
و اما مشکل ...
مقدار ردیف 3 و 4 رو همون 3 بر می گردونه و من اینجا مشکل دارم ...کد استفاده شده در برنامه ام هم اینه :
If Asc(e.KeyChar) = 13 Then
CurRow = dgvBankList.CurrentRow.Index
BankID = dgvBankList.Rows(CurRow).Cells("BankID").Value
End If

M.kavyani
سه شنبه 19 اردیبهشت 1385, 10:30 صبح
دوست عزیز ممنون ...
شاید اگه مسئله رو روشنتر کنم بهتر کمکم کنین ...
لیست زیرو بعنوان DataGridView در نظر بگیرید
-----------------
| 1 | ملی |
-----------------
| 2 | ملت |
-----------------
| 3 | صادرات |
-----------------
| 4 | تجارت |
-----------------
به راحتی روی هر ردیف با فلشها حرکت می کنم و بعد از زدن کلید Enter مقدار dgvBankList.CurrentRow.Index مقدار ردیفی هست که من روش قرار دارم.
و اما مشکل ...
مقدار ردیف 3 و 4 رو همون 3 بر می گردونه و من اینجا مشکل دارم ...کد استفاده شده در برنامه ام هم اینه :
If Asc(e.KeyChar) = 13 Then
CurRow = dgvBankList.CurrentRow.Index
BankID = dgvBankList.Rows(CurRow).Cells("BankID").Value
End If

از دستور زیر استفاده کنید در اینوت keyDown


Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown

If e.KeyCode = System.Windows.Forms.Keys.Enter Then
MessageBox.Show(Me.DataGridView1.CurrentRow.Cells( 0).Value)
e.Handled = True
End If

End Sub

Reza_Sunar
جمعه 22 اردیبهشت 1385, 12:34 عصر
آقای کاویانی خیلی ممنون ، مشکلم حل شد... Thanks

M.kavyani
جمعه 22 اردیبهشت 1385, 14:08 عصر
آقای کاویانی خیلی ممنون ، مشکلم حل شد... Thanks
خواهش میکنم
موفق و موید باشید