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,038

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


 

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

 
Topic : 054945



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



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



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

ไช้ gdi+ vb.net

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

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

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

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

Code (VB.NET)
001.Public Class Form1
002.    Private iX As Integer
003.    Private iY As Integer
004.    Private count As Integer
005.    Dim g As Graphics = Me.CreateGraphics
006.    Private Sub MakeGo(ByVal x As Integer, ByVal y As Integer)
007.        If count Mod 2 = 0 Then
008.            count = count + 1
009.            Dim rect As New Rectangle(x, y, 40, 45)
010.            Dim circle_brush As New SolidBrush(Color.White)
011.            g.FillEllipse(circle_brush, rect) '<<<
012.            Dim circle_pen As New Pen(Color.White, 5)
013.            g.DrawEllipse(circle_pen, rect) '<<<
014.        Else
015.            count = count + 1
016.            Dim rect As New Rectangle(x, y, 40, 45)
017.            Dim circle_brush As New SolidBrush(Color.Black)
018.            g.FillEllipse(circle_brush, rect) '<<<
019.            Dim circle_pen As New Pen(Color.Black, 5)
020.            g.DrawEllipse(circle_pen, rect) '<<<
021.        End If
022.    End Sub
023.    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
024.        iX = e.X
025.        iY = e.Y
026.        'แถวที่ 1
027.        If iX < 50 And iY > 0 And iY < 55 Then
028.            MakeGo(10, 10)
029.        ElseIf iX < 100 And iY > 0 And iY < 55 Then
030.            MakeGo(60, 10)
031.        ElseIf iX < 150 And iY > 0 And iY < 55 Then
032.            MakeGo(110, 10)
033.        ElseIf iX < 200 And iY > 0 And iY < 55 Then
034.            MakeGo(160, 10)
035.        ElseIf iX < 250 And iY > 0 And iY < 55 Then
036.            MakeGo(210, 10)
037.        End If
038.        'แถวที่ 2
039.        If iX < 50 And iY > 55 And iY < 110 Then
040.            MakeGo(10, 65)
041.        ElseIf iX < 100 And iY > 55 And iY < 110 Then
042.            MakeGo(60, 65)
043.        ElseIf iX < 150 And iY > 55 And iY < 110 Then
044.            MakeGo(110, 65)
045.        ElseIf iX < 200 And iY > 55 And iY < 110 Then
046.            MakeGo(160, 65)
047.        ElseIf iX < 250 And iY > 55 And iY < 110 Then
048.            MakeGo(210, 65)
049.        End If
050.        'แถวที่ 3
051.        If iX < 50 And iY > 110 And iY < 165 Then
052.            MakeGo(10, 120)
053.        ElseIf iX < 100 And iY > 110 And iY < 165 Then
054.            MakeGo(60, 120)
055.        ElseIf iX < 150 And iY > 110 And iY < 165 Then
056.            MakeGo(110, 120)
057.        ElseIf iX < 200 And iY > 110 And iY < 165 Then
058.            MakeGo(160, 120)
059.        ElseIf iX < 250 And iY > 110 And iY < 165 Then
060.            MakeGo(210, 120)
061.        End If
062.        'แถวที่ 4
063.        If iX < 50 And iY > 165 And iY < 215 Then
064.            MakeGo(10, 175)
065.        ElseIf iX < 100 And iY > 165 And iY < 215 Then
066.            MakeGo(60, 175)
067.        ElseIf iX < 150 And iY > 165 And iY < 215 Then
068.            MakeGo(110, 175)
069.        ElseIf iX < 200 And iY > 165 And iY < 215 Then
070.            MakeGo(160, 175)
071.        ElseIf iX < 250 And iY > 165 And iY < 215 Then
072.            MakeGo(210, 175)
073.        End If
074.        'แถวที่ 5
075.        If iX < 50 And iY > 215 And iY < 270 Then
076.            MakeGo(10, 230)
077.        ElseIf iX < 100 And iY > 215 And iY < 270 Then
078.            MakeGo(60, 230)
079.        ElseIf iX < 150 And iY > 215 And iY < 270 Then
080.            MakeGo(110, 230)
081.        ElseIf iX < 200 And iY > 215 And iY < 270 Then
082.            MakeGo(160, 230)
083.        ElseIf iX < 250 And iY > 215 And iY < 270 Then
084.            MakeGo(210, 230)
085.        End If
086. 
087.        If count > 24 Then
088.            MessageBox.Show("Total = " + count.ToString())
089.        End If
090.    End Sub
091.    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
092.        Dim rec1 As New Rectangle(5, 5, 50, 55)
093.        Dim brownpen As New Pen(Color.White, 3)
094.        g.DrawRectangle(brownpen, rec1)
095.        Dim rec3 As New Rectangle(55, 5, 50, 55)
096.        g.DrawRectangle(brownpen, rec3)
097.        Dim rec4 As New Rectangle(105, 5, 50, 55)
098.        g.DrawRectangle(brownpen, rec4)
099.        Dim rec5 As New Rectangle(155, 5, 50, 55)
100.        g.DrawRectangle(brownpen, rec5)
101.        Dim rec6 As New Rectangle(205, 5, 50, 55)
102.        g.DrawRectangle(brownpen, rec6)
103. 
104.        Dim rec21 As New Rectangle(5, 60, 50, 55)
105.        g.DrawRectangle(brownpen, rec21)
106.        Dim rec22 As New Rectangle(55, 60, 50, 55)
107.        g.DrawRectangle(brownpen, rec22)
108.        Dim rec23 As New Rectangle(105, 60, 50, 55)
109.        g.DrawRectangle(brownpen, rec23)
110.        Dim rec24 As New Rectangle(155, 60, 50, 55)
111.        g.DrawRectangle(brownpen, rec24)
112.        Dim rec25 As New Rectangle(205, 60, 50, 55)
113.        g.DrawRectangle(brownpen, rec25)
114. 
115.        Dim rec31 As New Rectangle(5, 115, 50, 55)
116.        g.DrawRectangle(brownpen, rec31)
117.        Dim rec32 As New Rectangle(55, 115, 50, 55)
118.        g.DrawRectangle(brownpen, rec32)
119.        Dim rec33 As New Rectangle(105, 115, 50, 55)
120.        g.DrawRectangle(brownpen, rec33)
121.        Dim rec34 As New Rectangle(155, 115, 50, 55)
122.        g.DrawRectangle(brownpen, rec34)
123.        Dim rec35 As New Rectangle(205, 115, 50, 55)
124.        g.DrawRectangle(brownpen, rec35)
125. 
126.        Dim rec41 As New Rectangle(5, 170, 50, 55)
127.        g.DrawRectangle(brownpen, rec41)
128.        Dim rec42 As New Rectangle(55, 170, 50, 55)
129.        g.DrawRectangle(brownpen, rec42)
130.        Dim rec43 As New Rectangle(105, 170, 50, 55)
131.        g.DrawRectangle(brownpen, rec43)
132.        Dim rec44 As New Rectangle(155, 170, 50, 55)
133.        g.DrawRectangle(brownpen, rec44)
134.        Dim rec45 As New Rectangle(205, 170, 50, 55)
135.        g.DrawRectangle(brownpen, rec45)
136. 
137.        Dim rec51 As New Rectangle(5, 225, 50, 55)
138.        g.DrawRectangle(brownpen, rec51)
139.        Dim rec52 As New Rectangle(55, 225, 50, 55)
140.        g.DrawRectangle(brownpen, rec52)
141.        Dim rec53 As New Rectangle(105, 225, 50, 55)
142.        g.DrawRectangle(brownpen, rec53)
143.        Dim rec54 As New Rectangle(155, 225, 50, 55)
144.        g.DrawRectangle(brownpen, rec54)
145.        Dim rec55 As New Rectangle(205, 225, 50, 55)
146.        g.DrawRectangle(brownpen, rec55)
147. 
148.    End Sub
149.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 : 1412 Reply : 4
 

 

No. 1



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



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


ม่ายมีคัย ช่วยผมเลย ฮือๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-26 22:02:00 By : Drewsn32
 

 

No. 2

Guest


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

Code (VB.NET)
01.Private _listPoint As New List(Of Point)
02. 
03.Private Sub MakeGo(ByVal x As Integer, ByVal y As Integer)
04.    Dim p As New Point(x, y)
05.    If _listPoint.Contains(p) Then
06.        Exit Sub
07.    Else
08.        _listPoint.Add(p)
09.    End If
10.    If count Mod 2 = 0 Then
11.        count = count + 1
12.        Dim rect As New Rectangle(x, y, 40, 45)
13.        Dim circle_brush As New SolidBrush(Color.White)
14.        g.FillEllipse(circle_brush, rect) '<<<
15.        Dim circle_pen As New Pen(Color.White, 5)
16.        g.DrawEllipse(circle_pen, rect) '<<<
17.    Else
18.        count = count + 1
19.        Dim rect As New Rectangle(x, y, 40, 45)
20.        Dim circle_brush As New SolidBrush(Color.Black)
21.        g.FillEllipse(circle_brush, rect) '<<<
22.        Dim circle_pen As New Pen(Color.Black, 5)
23.        g.DrawEllipse(circle_pen, rect) '<<<
24.    End If
25.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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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