เมาส์ชี้ที่ป้ายคำอธิบาย แล้วต้องการให้เปลี่ยนสีค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 3,309   13
URL.หัวข้อ / URL
เมาส์ชี้ที่ป้ายคำอธิบาย แล้วต้องการให้เปลี่ยนสีค่ะ

ขอเรียนสอบถามอาจารย์ทุกท่านค่ะ
-หนูสร้างฟอร์มไว้ ซึ่งมี ป้ายคำอธิบาย (Label) ต่างๆอยู่
-ความต้องการของหนูก็คือ เมื่อเอาเมาส์ไปชี้ที่ป้ายคำอธิบาย (Label) นั้นๆ ก็ให้สีอักษรของป้ายคำอธิบาย (Label)นั้นๆ มันเปลี่ยนเป็นสีน้ำเงิน และเมื่อย้ายเมาส์ออก ก็ให้กลับมาเป็นสีดำ เช่นเดิมค่ะ หรือเดิมอาจเป็นสีน้ำเงิน แต่พอชี้แล้วให้เปลี่ยนเป็นสีแดงก็ได้ค่ะอาจารย์

รบกวนขอคำแนะนำด้วยนะคะ

13 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R20849
ทำได้แล้วค่ะ
ตั้งกระทู้เสร็จก็นั่งค้นหาดูไปเจอที่กระทู้นี้ค่ะ

thaiaccess board

ขออภัยที่ไม่ได้ค้นหาให้ถี่ถ้วนเสียก่อน
2 @R20853
แนะนำนิดนะครับ คือการทำที่ On mouse move ให้เราสร้างเงื่อนไขตรวจสอบก่อนแล้วถ้าไม่ตรงแล้วค่อยสั่งเปลี่ยนกับวัตถุนั้น หากตรงก็ไม่ต้องทำ เพื่อจะไม่ให้มันเกิดอาการกระพิบตลอดเมื่อเราเลื่อนเมาส์อะครับ เช่น

Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label0.ForeColor <> RGB(255, 0, 0) Then 'ใส่การตรวจสอบก่อนจะได้ไม่ต้องทำตลอดเมื่อเลื่อนเมาส์
        Me.Label0.ForeColor = RGB(255, 0, 0)
    End If
End Sub

Private Sub Label0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label0.ForeColor <> RGB(0, 255, 0) Then 'ใส่การตรวจสอบก่อนจะได้ไม่ต้องทำตลอดเมื่อเลื่อนเมาส์
        Me.Label0.ForeColor = RGB(0, 255, 0)
    End If
End Sub
3 @R20858
วิธีแรกที่หนูทำมันเกิดการกระพิบ ตามที่ท่าน TTT กล่าวไว้จริงๆค่ะ
จะลองเปลี่ยนใช้แนวทางใหม่ ตามที่ท่าน TTT แนะนำค่ะ ขอบคุณนะคะ
4 @R20873
ได้ผลดีเยี่ยมเลยค่ะอาจารย์
หนูขอรบกวนเพิ่มเติมอีกนนิดนะคะ หากเรามี Label มากกว่าหนึ่ง เช่น สมมคิว่ามี 10 Label เราต้องเขียนโค๊ดอย่างไรให้สามารถตรวจสอบพร้อมกันได้ทั้ง 10 Label โดยไม่ต้องเขียนคำสั่งให้แต่ละ Label
ขอความช่วยเหลือเพิ่มเติมอีกนิดนะคะอาจารย์
5 @R20884
หนูทดลองทำดู 4 Label

Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Me.Label0.ForeColor <> "0" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label0.ForeColor = "0"
    End If
        If Me.Label1.ForeColor <> "0" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label1.ForeColor = "0"
    End If
    If Me.Label2.ForeColor <> "0" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label2.ForeColor = "0"
    End If
    If Me.Label3.ForeColor <> "0" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label3.ForeColor = "0"
    End If
End Sub

Private Sub Label0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label0.ForeColor <> "255" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label0.ForeColor = "255"
    End If
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label1.ForeColor <> "255" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label1.ForeColor = "255"
    End If
End Sub

Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label2.ForeColor <> "255" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label2.ForeColor = "255"
    End If
End Sub

Private Sub Label3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.Label3.ForeColor <> "255" Then 'ãÊè¡ÒõÃǨÊͺ¡è͹¨Ðä´éäÁèµéͧ·ÓµÅÍ´àÁ×èÍàÅ×è͹àÁÒÊì
        Me.Label3.ForeColor = "255"
    End If
End Sub



เขียนไว้อย่างนี้ ไม่ทราบว่าถูกต้องตามหลักการเขียนโค๊ดหรือเปล่าคะ
6 @R20885
ผมแนะนำให้ใส่โค้ดเป็นลักษณะนี้จะดีกว่า เราจะใช้ object variable ActiveLabel เป็นตัวเก็บว่าลาเบลไหนที่ถูกเปลี่ยนสีไป ไม่งั้นถ้ามีการเพิ่มลาเบลทีนึง คุณมาลีก็ต้องมาเพิ่มใน Detail_MouseMove procedure ที โค้ดมันจะยาวไปเรื่อยๆ


Option Compare Database
Option Explicit

Dim ActiveLabel As Access.Label

Private Sub Detail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Not (ActiveLabel Is Nothing) Then
        ActiveLabel.ForeColor = vbBlack
        Set ActiveLabel = Nothing
    End If
End Sub

Private Sub Label0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Me.Label0.ForeColor <> vbBlue Then Call SetActiveLabel(Me.Label0)
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Me.Label1.ForeColor <> vbBlue Then Call SetActiveLabel(Me.Label1)
End Sub

Private Sub SetActiveLabel(L As Access.Label)
    If Not (ActiveLabel Is Nothing) Then
        ActiveLabel.ForeColor = vbBlack
        Set ActiveLabel = Nothing
    End If
    
    Set ActiveLabel = L
    ActiveLabel.ForeColor = vbBlue
End Sub
7 @R20887
เยี่ยมไปเลยค่ะ.....

โค๊ดนี้กระชับและช่วยให้เขียนได้ง่ายมากยิ่งขึ้น

ขอบคุณมากค่ะอาจารย์
8 @R20902
ผมเห็นโค๊ดแล้วนึกสนุกว่าเรามาทำเป็นเมนูเล่นๆก็ได้นะครับ เลยอัดเป็นคลิปไว้ เป็นแนวทางเผื่อใครสนใจทำดูครับ แค่แนวคิดนะครับ ใช้จริงคิดว่ายังปรับให้ดีกว่านี้ได้อีก

คลิปทำเมนูเองบนฟอร์ม
9 @R20905
ดูภาพไม่ค่อยชัดเลยค่ะอาจารย์
หนูขอไฟล์ตัวอย่างได้ไหมคะ ไอเดียร์ของอาจารย์น่าจะเอาไว้เป็นแบบอย่างพัฒนาต่อได้อีกมากเลย ชอบมากค่ะ

10 @R20906
น่าสนใจมากครับ แต่วีดีโอ ไม่ชัดเลยครับ
11 @R20917
! ผมว่าชัดพอควรแล้วนะครับ อัดโหมด HD 720p เลยนะครับ

อื่ม ผมว่างผมก็ทำไปที่ละนิดแล้วค่อยนำมาต่อกัน พอไปดูอีกที ก็มีบางอย่างที่คิดว่าน่าจะปรับแก้อยู่ ไว้ว่างผมจะทำไฟล์ตัวอย่างให้ดูแล้วกันครับ

ขอความรู้เพื่อนๆ อาจารย์ทุกท่านหน่อยครับว่า เราสามารถหาความสูงแต่ละบรรทัดของ List Box ได้อย่างไรครับ คือถ้าได้ดูวิดีโอ ตอนเลื่อนเมาส์ List box แล้วให้ cursor มัน Select หัวข้อใน List box ตามเมาส์เลย มันไม่ค่อยยืดหยุ่นอะครับ คือถ้าเปลี่ยนชื่อฟอนต์ ขนาดฟอนต์ มันต้องปรับแก้เองอะครับ ผมจะลองคิดสูตรใหม่ดู หรือมีวิธีดีกว่ามานั่งตรวจ Pointer mouse ก็แนะนำหน่อยนะครับ อยากรู้เหมือนกันว่า List Box ใน MS Access ทำให้ Select ไปตามเมาส์เลยป่าว
12 @R20937
โทษทีที่ช้านะครับพอดีขอแก้ไขบางอย่าง และอยากเสริมนิดหน่อยให้ดูใช้งานได้จริงอะครับ แต่พอดีเวลาน้อยนิด ประมาณนี้แล้วกันครับ

โหลดที่นี่

หวังว่าคงเป็นประโยชน์ให้โปรแกรมทุกท่านที่กำลังสนใจน่าใช้ยิ่งขึ้นนะครับ โดยเฉพาะฟอร์มที่ต้องทำปุ่มเยอะๆนานๆใช้ทีแต่ต้องมี ดูแล้วตาลายไปหมด ก็น่าจะช่วยลดพื้นทีไปได้ดี
13 @R20938
ขอบคุณมากๆ ค่ะอาจารย์
ขอนำไปศึกษาขยายผลต่อนะคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2603s