ผู้เขียน หัวข้อ: แสดงComboในตารางกริด  (อ่าน 486 ครั้ง)

ออฟไลน์ yukeeplee

  • Newbie
  • *
  • กระทู้: 9
แสดงComboในตารางกริด
« เมื่อ: กรกฎาคม 24, 2015, 12:48:26 pm »
สอบถามเกี่ยวกับ Combo box แสดงทับใน Cell ของตารางกริด(Flex Grid) ต้องเขียน Code ยังไงครับอาจารย์

บันทึกการเข้า

ออฟไลน์ ทองก้อน ทับทิมกรอบ

  • Administrator
  • *****
  • กระทู้: 245
  • เพศ: ชาย
  • Webmaster G2GNet
Re: แสดงComboในตารางกริด
« ตอบกลับ #1 เมื่อ: กรกฎาคม 25, 2015, 11:19:28 am »
อันดับแรก "จินตนาการ" กันก่อนล่ะครับ ...
- เราสามารถหาตำแหน่งของ Cell ต่างๆได้หรือไม่ว่ามันอยู่ที่ แถวใด หลักใด
- เราสามารถเคลื่อนย้ายเคอร์เซอร์ไปโฟกัสตาม Cell ต่างๆได้หรือไม่
- หากเราเลือกตำแหน่ง Cell ที่เราต้องการได้ แล้วลองเคลื่อนตำแหน่งของ ComboBox เข้าไปปิดทับ ณ ตำแหน่งนั้น จะเกิดอะไรขึ้น ...



โค๊ด: [Select]
' / -----------------------------------------------------------------------------------------------------------------------------------
' / Developer : Mr.Surapon Yodsanga (Thongkorn)
' / eMail : thongkorn@hotmail.com
' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
' / Facebook: www.facebook.com/g2gnet
' / Project: Put ComboBox Control into MS FlexGrid
' / Microsoft Visual Basic 6.0 Service Pack 6
' / -----------------------------------------------------------------------------------------------------------------------------------
Option Explicit

Private Sub Form_Load()
    ' Center form by run time
    Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
    ' Initialize FlexGrid Control
    Call SetupGrid
    '
    With Combo1
        .Visible = True
        .ZOrder (0)
        ' Load the ComboBox's list.
        .AddItem "M100"
        .AddItem "M150"
        .AddItem "M16"
        ' Adjust column width
        .Width = fg.ColWidth(3)
        .ListIndex = 0
        ' Hidden Control
        .Visible = False
    End With
End Sub

' / -----------------------------------------------------------------------------------------------------------------------------------
' / Initialize FlexGrid
Private Sub SetupGrid()
' / -----------------------------------------------------------------------------------------------------------------------------------
    With fg
        .Clear
        .Cols = 4
        .ColWidth(0) = 1200
        .ColWidth(1) = 2600
        .ColWidth(2) = Combo1.Width
        '
        .TextMatrix(0, 0) = "Item"
        .TextMatrix(0, 1) = "First Name"
        .TextMatrix(0, 2) = "Last Name"
        .TextMatrix(0, 3) = "Combo Box"
        '
        .RowHeightMin = Combo1.Height
    End With
    ' เพิ่มรายการ
    With fg
        .AddItem "1" & vbTab & "ทองก้อน" & vbTab & "ทับทิมกรอบ" & vbTab & "M100"
        .AddItem "2" & vbTab & "บุญห่อ" & vbTab & "พ่อรวย" & vbTab & "M150"
        .AddItem "3" & vbTab & "กุ๊กกิ๊ก" & vbTab & "เลิศหรูดูล้ำ" & vbTab & "M16"
    End With
End Sub

' / -----------------------------------------------------------------------------------------------------------------------------------
' / เกิดเหตุการณ์นำเมาส์ไปคลิ๊กที่ Cell ใดๆใน FlexGrid
Private Sub fg_Click()
' / -----------------------------------------------------------------------------------------------------------------------------------
    If fg.Row = 0 Then Exit Sub
    ' เลือกหลักที่ต้องการ
    Select Case fg.Col
        ' ไม่ใชหลักที่ต้องการให้ ComboBox ปรากฏ ก็ปิดการแสดงผลของ ComboBox
        Case 0 To 2:
            Combo1.Visible = False
           
        ' หลัก 3 คือหลักที่ต้องการ และทำการเคลื่อนย้ายตำแหน่ง ComboBox เข้าสู่ FlexGrid ได้
        Case 3:
            Combo1.Visible = True   ' เปิดการแสดงผล ComboBox
            Combo1.Text = fg.Text   ' นำค่าจาก FlexGrid มาเทียบค่าใน ComboBox
            ' เคลื่อนย้ายตำแหน่ง ComboxBox ไปในเซลล์ต่างๆของหลักที่ 3
            Combo1.Move fg.CellLeft + fg.Left, fg.CellTop + fg.Top, fg.CellWidth
    End Select
End Sub

' / -----------------------------------------------------------------------------------------------------------------------------------
Private Sub Combo1_Click()
' / -----------------------------------------------------------------------------------------------------------------------------------
    ' หากอยู่ที่หลัก 3 หากเกิดการเปลี่ยนค่าในการเลือก ComboBox ก็นำค่านั้นไปใส่ไว้ในเซลล์ของ FlexGrid
    If fg.Col = 3 Then fg.Text = Combo1.Text
End Sub

ดาวน์โหลดโค้ด VB6

บันทึกการเข้า
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

ออฟไลน์ yukeeplee

  • Newbie
  • *
  • กระทู้: 9
Re: แสดงComboในตารางกริด
« ตอบกลับ #2 เมื่อ: กรกฎาคม 28, 2015, 08:19:58 am »
ขอบคุณครับอาจารย์

บันทึกการเข้า

ออฟไลน์ Mr.Den

  • Jr. Member
  • **
  • กระทู้: 73
  • เพศ: ชาย
Re: แสดงComboในตารางกริด
« ตอบกลับ #3 เมื่อ: กรกฎาคม 28, 2015, 05:54:59 pm »
 8)ขอบคุณมากครับ
ผมยังคิดคำถามจะมาถามไม่ออกเลยครับ
เหมือนจะมีคำตอบให้หมดแล้วใน g2gnet.com

บันทึกการเข้า

ออฟไลน์ naien

  • Newbie
  • *
  • กระทู้: 36
Re: แสดงComboในตารางกริด
« ตอบกลับ #4 เมื่อ: พฤศจิกายน 20, 2015, 11:32:35 am »
ขอบคุณครับ

บันทึกการเข้า