الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اختلافات بين VB و VB.Net

مغلق
بدأه aroma_kt في 8 يوليو 2004 · 6 رد · 1,038 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته:

أنا مبرمجة بالفيجوال بيسك وأود الانتقال إلى بيئة الدوت نيت.

بدأت ببرمجة برنامج الرسام في دوت نيت لكن واجهتني مشكلة عويصة ألا وهي:

كل ما يتم رسمه على خانة الصورة يتم محوه عند تصغير النافذة أو عندما أحرك نافذة أخرى فوقها.

لقد كان الحل في فيجوال بيسك بإسناد القيمة True إلى AutoRedraw لخانة الصورة لكن المشكلة لا يوجد AutoRedraw في بيئة دوت نيت فما العمل؟؟

#2

Try refreshing your form on FormResize event, i.e

  Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
        Me.Refresh()
    End Sub

رأس الحكمة الإيمان بالله

#3

لم تنجح طريقة Resize, إليكم الكود أرجو المحاولة وإخباري ما الحل؟؟

    Dim IsButtonDown As Boolean
    Dim OldX, OldY As Integer

    Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        IsButtonDown = True
        OldX = e.X
        OldY = e.Y
    End Sub

    Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
        IsButtonDown = False
    End Sub

    Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If Not IsButtonDown Then Exit Sub

        Dim Pen As New Drawing.Pen(System.Drawing.Color.Black, 3)
        PictureBox1.CreateGraphics.DrawLine(Pen, OldX, OldY, e.X, e.Y)
        Pen.Dispose()

        OldX = e.X
        OldY = e.Y
    End Sub
#4

Ok, things are clear now by posting your code

I've pasted the whole artivle from vbdotnetheaven.com just to save your time registering in it

Hope you find your solution in the article

The article originally taken from vbdotnetheaven.com

VB .NET does not have an AutoRedraw property for forms

This is a problem if you wish to display text and graphics directly on a form. This brief project should help to provide you with AutoRedraw capability.

The theory is as follows:

Create a bitmap from your form at startup.

Write your graphics and text to the bitmap (not the form).

Copy the bitmap to the form to show the graphics.

Copy the bitmap to the form to repaint.

Some explanation:

If you try to print directly to the form first and then save each printing from the form to the bitmap you will run into problems since the system may not display your graphics in time to be copied. You could try the 'System.Windows.Forms.Application.DoEvents()' statement, but an intervening Paint event might spoil everything.

Here is the code:

'=======================================================
'               AutoRedraw in VB .NET
'         by: Rick Meyer         December 2002
'          http://trixar.com/~makai/index.htm
'=======================================================
' Purpose and Explanation:
'
' This very brief project provides a replacement for
'   the VB6 Form.AutoRedraw missing in VB .NET
'=======================================================
' Instructions and Operation:
'
' 1. Start a new VB.NET Windows Application
' 2. On Form1 put a Button named Button1
' 3. Copy the following code into Form1 class
' 4. Press F5 to run
' 5. Minimize and restore to verify the repaint
' 6. Click Button1
' 7. Minimize and restore to verify the repaint
'=======================================================

    'Bitmap holds picture of the form
    Private b1 As Bitmap
    'Graphics object (printing buffer)
    Private g1 As Graphics

    Private Sub Form1_Activated(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles MyBase.Activated

        Static done As Boolean = False

        If Not done Then
            'Size and describe the form
            Size = New Size(200, 150)
            Text = "AutoRedraw"

            'Size, Locate, & Describe the button
            With Button1
                .Text = "Print Something"
                .Size = New Size(100, 20)
                .Location = New Point(30, 80)
            End With

            'AUTOREDRAW INITIALIZATION
            'Create the initial bitmap from Form
            b1 = New Bitmap(Width, Height, Me.CreateGraphics())

            'Create the Graphics Object buffer
            ' which ties the bitmap to it so that
            ' when you draw something on the object
            ' the bitmap is updated
            g1 = Graphics.FromImage(b1)

            'Prevent reentry to initialization
            done = True
            'END AUTOREDRAW INITIALIZATION

            'Print beginning text
            FormPrint("Beginning Text", 25, 10)
        End If
    End Sub

    'Print something
    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        FormPrint("Something", 35, 46)
    End Sub

    Private Sub FormPrint(ByVal t$, ByVal x1%, ByVal y1%)
        'Printing to the graphics buffer (not form)
        ' updates the associated bitmap b1
        g1.DrawString(t, New Font("Verdana", 12), _
            Brushes.Black, x1, y1)

        'Copy the bitmap to the form
        Me.CreateGraphics.DrawImage(b1, 0, 0)
    End Sub

    Private Sub Form1_Paint( _
        ByVal sender As Object, _
        ByVal e As System.Windows.Forms.PaintEventArgs) _
            Handles MyBase.Paint

        'Copy the bitmap to the form
        e.Graphics.DrawImage(b1, 0, 0)
    End Sub

I hope that helps

Mohammed Abdel-Aleem

رأس الحكمة الإيمان بالله

#5

أشكرك أخ عبد العليم على تعاونك وردك السريع وأرجو المعذرة على التأخير في شكرك.

لكن كيف يمكنني تطبيق هذه الطريقة على الكود الذي كتبته , اعذرني لكنني مبتدئة في الدوت نيت كما أنني لم أعرف ما المغزى من كل سطر.

وهل يوجد طرق أسهل؟

#6

بسم الله الرحمن الرحيم

إختي الفاضلة لقد قرأت أنكي في صدد تصميم برنامج الرسام وكما فهمت أنكي قد إستطعت تصميمه بالفيجوال بيسك ، هل من الممكن مساعدتي في هذا الموضوع فأنا أحضر حالياً لمشروع تخرجي والمشروع يتحدث عن برنامج الر سام بالفيجوال بيسك لو تكرمتي أختي الكريمة أو أي أحد من الأعضاء الذين يعرفون

لكم كل الشكر

#7

السلام عليكم ورحمة الله وبركاته:

أخي الفاضل عندما قلت أنني قمت ببرمجة برنامج الرسام في فيجوال بيسك

فقد قصدت برنامجاً صغيراً جداً وبسيطاً حتى تكاد كلمة برنامج لا تصلح أن تطلق عليه

لكن على كل إليك البريمج الذي صممته:

My_Painter.zip

هذا الموضوع مغلق.

مواضيع مشابهة