Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ปรึกษา เรื่อง gdi+ vb.net หน่อยนะครับ ทำไงไห้สร้างวงกลมซ้ำไม่ได้



 

ปรึกษา เรื่อง gdi+ vb.net หน่อยนะครับ ทำไงไห้สร้างวงกลมซ้ำไม่ได้

 



Topic : 054945



โพสกระทู้ ( 36 )
บทความ ( 0 )



สถานะออฟไลน์




พอดีจานไห้ ทำ การบ้าน เกมส์โกะ อะครับ

ไช้ gdi+ vb.net

ผมทำได้มั้งละ ครับ ติดปัญหาตรง การคลิกอะครับ มีอยู่ว่า

เขียนเช็คการสร้างวงกลม โดย ให้ สร้าง ตัวแปล count ไป mod 2 ได้เลข คี่ ให้สร้างวงกลมสีดำ ได้ เลขคู่ให้สร้างวงกลมสีขาว

ติดตรงที่่ว่า ผมจะทำไงไห้ คลิก ครั้งเดียว พอได้เลขคี่แล้ว ก็ไห้เปนสีดำ แล้วจบ ไม่เปลี่ยนเปนสีขาวอีกนึกไม่ออกละคับ ช่วยด้วยนะคับ

โค้ดที่ผมเขียน ดูให้ทีนะงับ

Code (VB.NET)
Public Class Form1
    Private iX As Integer
    Private iY As Integer
    Private count As Integer
    Dim g As Graphics = Me.CreateGraphics
    Private Sub MakeGo(ByVal x As Integer, ByVal y As Integer)
        If count Mod 2 = 0 Then
            count = count + 1
            Dim rect As New Rectangle(x, y, 40, 45)
            Dim circle_brush As New SolidBrush(Color.White)
            g.FillEllipse(circle_brush, rect) '<<<
            Dim circle_pen As New Pen(Color.White, 5)
            g.DrawEllipse(circle_pen, rect) '<<<
        Else
            count = count + 1
            Dim rect As New Rectangle(x, y, 40, 45)
            Dim circle_brush As New SolidBrush(Color.Black)
            g.FillEllipse(circle_brush, rect) '<<<
            Dim circle_pen As New Pen(Color.Black, 5)
            g.DrawEllipse(circle_pen, rect) '<<<
        End If
    End Sub
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        iX = e.X
        iY = e.Y
        'แถวที่ 1
        If iX < 50 And iY > 0 And iY < 55 Then
            MakeGo(10, 10)
        ElseIf iX < 100 And iY > 0 And iY < 55 Then
            MakeGo(60, 10)
        ElseIf iX < 150 And iY > 0 And iY < 55 Then
            MakeGo(110, 10)
        ElseIf iX < 200 And iY > 0 And iY < 55 Then
            MakeGo(160, 10)
        ElseIf iX < 250 And iY > 0 And iY < 55 Then
            MakeGo(210, 10)
        End If
        'แถวที่ 2
        If iX < 50 And iY > 55 And iY < 110 Then
            MakeGo(10, 65)
        ElseIf iX < 100 And iY > 55 And iY < 110 Then
            MakeGo(60, 65)
        ElseIf iX < 150 And iY > 55 And iY < 110 Then
            MakeGo(110, 65)
        ElseIf iX < 200 And iY > 55 And iY < 110 Then
            MakeGo(160, 65)
        ElseIf iX < 250 And iY > 55 And iY < 110 Then
            MakeGo(210, 65)
        End If
        'แถวที่ 3
        If iX < 50 And iY > 110 And iY < 165 Then
            MakeGo(10, 120)
        ElseIf iX < 100 And iY > 110 And iY < 165 Then
            MakeGo(60, 120)
        ElseIf iX < 150 And iY > 110 And iY < 165 Then
            MakeGo(110, 120)
        ElseIf iX < 200 And iY > 110 And iY < 165 Then
            MakeGo(160, 120)
        ElseIf iX < 250 And iY > 110 And iY < 165 Then
            MakeGo(210, 120)
        End If
        'แถวที่ 4
        If iX < 50 And iY > 165 And iY < 215 Then
            MakeGo(10, 175)
        ElseIf iX < 100 And iY > 165 And iY < 215 Then
            MakeGo(60, 175)
        ElseIf iX < 150 And iY > 165 And iY < 215 Then
            MakeGo(110, 175)
        ElseIf iX < 200 And iY > 165 And iY < 215 Then
            MakeGo(160, 175)
        ElseIf iX < 250 And iY > 165 And iY < 215 Then
            MakeGo(210, 175)
        End If
        'แถวที่ 5
        If iX < 50 And iY > 215 And iY < 270 Then
            MakeGo(10, 230)
        ElseIf iX < 100 And iY > 215 And iY < 270 Then
            MakeGo(60, 230)
        ElseIf iX < 150 And iY > 215 And iY < 270 Then
            MakeGo(110, 230)
        ElseIf iX < 200 And iY > 215 And iY < 270 Then
            MakeGo(160, 230)
        ElseIf iX < 250 And iY > 215 And iY < 270 Then
            MakeGo(210, 230)
        End If

        If count > 24 Then
            MessageBox.Show("Total = " + count.ToString())
        End If
    End Sub
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Dim rec1 As New Rectangle(5, 5, 50, 55)
        Dim brownpen As New Pen(Color.White, 3)
        g.DrawRectangle(brownpen, rec1)
        Dim rec3 As New Rectangle(55, 5, 50, 55)
        g.DrawRectangle(brownpen, rec3)
        Dim rec4 As New Rectangle(105, 5, 50, 55)
        g.DrawRectangle(brownpen, rec4)
        Dim rec5 As New Rectangle(155, 5, 50, 55)
        g.DrawRectangle(brownpen, rec5)
        Dim rec6 As New Rectangle(205, 5, 50, 55)
        g.DrawRectangle(brownpen, rec6)

        Dim rec21 As New Rectangle(5, 60, 50, 55)
        g.DrawRectangle(brownpen, rec21)
        Dim rec22 As New Rectangle(55, 60, 50, 55)
        g.DrawRectangle(brownpen, rec22)
        Dim rec23 As New Rectangle(105, 60, 50, 55)
        g.DrawRectangle(brownpen, rec23)
        Dim rec24 As New Rectangle(155, 60, 50, 55)
        g.DrawRectangle(brownpen, rec24)
        Dim rec25 As New Rectangle(205, 60, 50, 55)
        g.DrawRectangle(brownpen, rec25)

        Dim rec31 As New Rectangle(5, 115, 50, 55)
        g.DrawRectangle(brownpen, rec31)
        Dim rec32 As New Rectangle(55, 115, 50, 55)
        g.DrawRectangle(brownpen, rec32)
        Dim rec33 As New Rectangle(105, 115, 50, 55)
        g.DrawRectangle(brownpen, rec33)
        Dim rec34 As New Rectangle(155, 115, 50, 55)
        g.DrawRectangle(brownpen, rec34)
        Dim rec35 As New Rectangle(205, 115, 50, 55)
        g.DrawRectangle(brownpen, rec35)

        Dim rec41 As New Rectangle(5, 170, 50, 55)
        g.DrawRectangle(brownpen, rec41)
        Dim rec42 As New Rectangle(55, 170, 50, 55)
        g.DrawRectangle(brownpen, rec42)
        Dim rec43 As New Rectangle(105, 170, 50, 55)
        g.DrawRectangle(brownpen, rec43)
        Dim rec44 As New Rectangle(155, 170, 50, 55)
        g.DrawRectangle(brownpen, rec44)
        Dim rec45 As New Rectangle(205, 170, 50, 55)
        g.DrawRectangle(brownpen, rec45)

        Dim rec51 As New Rectangle(5, 225, 50, 55)
        g.DrawRectangle(brownpen, rec51)
        Dim rec52 As New Rectangle(55, 225, 50, 55)
        g.DrawRectangle(brownpen, rec52)
        Dim rec53 As New Rectangle(105, 225, 50, 55)
        g.DrawRectangle(brownpen, rec53)
        Dim rec54 As New Rectangle(155, 225, 50, 55)
        g.DrawRectangle(brownpen, rec54)
        Dim rec55 As New Rectangle(205, 225, 50, 55)
        g.DrawRectangle(brownpen, rec55)

    End Sub
End Class




Tag : .NET, Win (Windows App), VB.NET, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-01-23 19:16:07 By : Drewsn32 View : 1373 Reply : 4
 

 

No. 1



โพสกระทู้ ( 36 )
บทความ ( 0 )



สถานะออฟไลน์


ม่ายมีคัย ช่วยผมเลย ฮือๆ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-26 22:02:00 By : Drewsn32
 


 

No. 2

Guest


ต้องขอปรบมือไห้ก่อน algo สุดยอดมากครับ
ส่วนตรงห้ามคลิกซ้ำ ก็เพิ่มตัวแปร point ไว้เช็คครับ

Code (VB.NET)
    Private _listPoint As New List(Of Point)

    Private Sub MakeGo(ByVal x As Integer, ByVal y As Integer)
        Dim p As New Point(x, y)
        If _listPoint.Contains(p) Then
            Exit Sub
        Else
            _listPoint.Add(p)
        End If
        If count Mod 2 = 0 Then
            count = count + 1
            Dim rect As New Rectangle(x, y, 40, 45)
            Dim circle_brush As New SolidBrush(Color.White)
            g.FillEllipse(circle_brush, rect) '<<<
            Dim circle_pen As New Pen(Color.White, 5)
            g.DrawEllipse(circle_pen, rect) '<<<
        Else
            count = count + 1
            Dim rect As New Rectangle(x, y, 40, 45)
            Dim circle_brush As New SolidBrush(Color.Black)
            g.FillEllipse(circle_brush, rect) '<<<
            Dim circle_pen As New Pen(Color.Black, 5)
            g.DrawEllipse(circle_pen, rect) '<<<
        End If
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-28 14:20:52 By : Programmer Of Persia
 

 

No. 3



โพสกระทู้ ( 36 )
บทความ ( 0 )



สถานะออฟไลน์


ชมหรือประชดครับนิ อิอิ

ขอบคุณมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-29 14:48:55 By : Drewsn32
 


 

No. 4

Guest


ไคร รู้บ้าง วิธี รวมจำนวนเงินของสินค้าทั้งหมดทุกๆรายการ
ในตาลาง DATAGRIDVIEW vb2008ครับ

....ตัวอย่างโคดของ_vb 06 .. ใช้ MS FlexGrid ครับ
Dim TotalAmount As Currency
TotalAmount = 0
For Rec = 1 To fgData.Rows - 1
RS("TotalAmount") = Format(TotalAmount + CDbl(fgData.TextMatrix(Rec, 6)), "#,##0.00")
TotalAmount = RS("TotalAmount")
Next
.....
ถ้าเป็นของ Vb 2008..net เขียนโคดยังไง ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-04 10:58:40 By : สนทนา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษา เรื่อง gdi+ vb.net หน่อยนะครับ ทำไงไห้สร้างวงกลมซ้ำไม่ได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่