PDA

View Full Version : edit کردن سلولهای gridview با shortcut



AmirAlimadadi
سه شنبه 29 اردیبهشت 1388, 16:53 عصر
سلام دوستان
من این موضوع رو جستجو کردم ولی چیزی پیدا نکردم.
در حالت پیش فرض وقتی که توی یه datagridview حرکت می کنیم(با زدن enter و یا arrow key ها)، با ورود به هر سلول، اون سلول به حالت انتخاب در می یاد، حالا من می خوام که بعد از انتخاب شدن محتوای اون سلول، اگه یه دکمه زده شد، اون سلول از حالت انتخاب در بیاد و نشانگر موس به یه مکان در داخل سلول حرکت کنه، مثلا اگه End زده شد، نشانگر به انتهای رشته موجود در سلول بره و یا اگه Home زده شد، نشانگر به ابتدا بره.

anooshiran
چهارشنبه 30 اردیبهشت 1388, 03:51 صبح
سلام دوست عزيز

كافي است در رويدادcell enter كد زير را وارد كني.




Private Sub DataGridView1_CellEnter(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellEnter

DataGridView1.BeginEdit(False)

End Sub

AmirAlimadadi
شنبه 02 خرداد 1388, 11:28 صبح
ممنون از شما، یه سوال دیگه ای که دارم اینه که با بعد از BeginEdit کردن، وقتی که کاربر متن مورد نظرش رو تایپ کرد، با زدن دکمه enter به سلول بعدی بره نه خط بعد، چیزی شبیه به tab. اما هر کاری که کردم نتونستم، حتی
sendkeys.send("{TAB}") رو هم در متد onkeydown نوشتم اما جواب نداد

anooshiran
یک شنبه 03 خرداد 1388, 04:17 صبح
سلام دوست عزيز

كلاس زير را به پروژه ات اضافه كن. و يك بار برنامه را اجرا كن. در بالاي toolbox يك كنترل به نام MyDataGridView ايجاد ميشه. حالا اين كنترل را روي فرمت دراگ كن. اين همون datagridview است كه وقتي enter ميزني عمل tab رو انجام ميده



Public Class MyDatagridview
Inherits DataGridView
Public Event OtherKeys(ByVal keys As System.Windows.Forms.Keys)
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Enter
Return MyBase.ProcessTabKey(Keys.Tab)
Case Else
Return MyBase.ProcessCmdKey(msg, keyData)
End Select
End Function
End Class