vb6 ; نحوه وارد کردن اطلاعات به سلولهای یک MSflexGrid با کمک صفحه کلید

vb6 ; نحوه وارد کردن اطلاعات به سلولهای یک MSflexGrid با کمک صفحه کلید؟؟؟

سلام به همه دوستان عزیزم...
چرا نمیتونم تو vb6 اطلاعات رو به سلولهای یک MSFlexGrid با استفاده از صفحه کلید وارد کنم؟(با کد نویسی تونستم ولی وقتی می خواستم اعداد ورودی رو تصحیح کنم;داده های درون MSFlexGrid تغییر نمی کردن...)
 
آخرین ویرایش:

the_king

مدیرکل انجمن
سلام به همه دوستان عزیزم...
چرا نمیتونم تو vb6 اطلاعات رو به سلولهای یک MSFlexGrid با استفاده از صفحه کلید وارد کنم؟(با کد نویسی تونستم ولی وقتی می خواستم اعداد ورودی رو تصحیح کنم;داده های درون MSFlexGrid تغییر نمی کردن...)

بایستی یک TextBox را روی فیلد مورد نظر قرار دهید، مثلا یک کنترل MSFlexGrid1 و یک کنترل Text1 را روی فرم قرار داده
و کد زیر را به فرم اضافه کنید :

کد:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If ActiveControl Is Text1 Then
        Select Case KeyCode
        Case vbKeyReturn
            With MSFlexGrid1
                .TextMatrix(.Row, .Col) = Text1.Text
                .CellAlignment = .CellAlignment
            End With
            Text1.Visible = False
        Case vbKeyEscape
            With MSFlexGrid1
                Text1.Text = .TextMatrix(.Row, .Col)
            End With
            Text1.Visible = False
        End Select
    End If
End Sub

Private Sub Form_Load()
    Text1.Visible = False
    KeyPreview = True
    With MSFlexGrid1
        .Cols = 3
        .Rows = 4
    End With
End Sub

Private Sub MSFlexGrid1_DblClick()
    With MSFlexGrid1
        Text1.BorderStyle = 0
        Text1.BackColor = vbYellow
        Text1.Move .Left + .CellLeft, .Top + .CellTop, .CellWidth, .CellHeight
        Select Case .CellAlignment
        Case flexAlignGeneral, flexAlignLeftBottom, flexAlignLeftCenter, flexAlignLeftTop
            Text1.Alignment = vbLeftJustify
        Case flexAlignCenterBottom, flexAlignCenterCenter, flexAlignCenterTop
            Text1.Alignment = vbCenter
        Case flexAlignRightBottom, flexAlignRightCenter, flexAlignRightTop
            Text1.Alignment = vbRightJustify
        End Select
        Text1.Text = .TextMatrix(.Row, .Col)
        Text1.Visible = True
        Text1.SetFocus
        Text1.SelStart = 0
        Text1.SelLength = Len(Text1.Text)
    End With
End Sub

Private Sub MSFlexGrid1_EnterCell()
    If Text1.Visible Then
        MSFlexGrid1_DblClick
    Else
        MSFlexGrid1.CellBackColor = vbYellow
    End If
End Sub

Private Sub MSFlexGrid1_LeaveCell()
    With MSFlexGrid1
        If Text1.Visible Then
            .TextMatrix(.Row, .Col) = Text1.Text
            .CellAlignment = .CellAlignment
        End If
        .CellBackColor = vbWindowBackground
    End With
End Sub

پس از اجرا کد، روی خانه های جدول دوبار کلیک (Double Click) نموده و مقدارشان را وارد نمایید. در زمانی که در حال
ویرایش مقادیر هستید، یکبار کلیک بر روی سایر خانه ها موجب جابجایی به آن خانه مورد نظر و فشار دادن کلید Enter
موجب ثبت مقدار خارج شدن از حالت ویرایش خواهد شد، کلید ESC هم برای انصراف از تغییر مقدار قابل استفاده است.
 

جدیدترین ارسال ها

بالا