ป้องกันการคีย์ในcombobox
กระทู้เก่าบอร์ด อ.Yeadram

 1,492   11
URL.หัวข้อ / URL
ป้องกันการคีย์ในcombobox

ต้องการไม่ให้ผู้ใช้ คลิกคีย์ข้อมูลลงในcombobox ยังไงคะ
จากที่ลองlimit to list มันจะสามารถคีย์ได้ แล้วจะขึ้นแจ้งเตือนไม่ให้เปลี่ยนค่าตอนหลัง

คือต้องการให้กดในรายการไม่ได้เลยค่ะ (ไม่ใช่ปิด Enabled ด้วยนะคะ)
หรือกดแล้วไม่ขึ้นรูปเคอเซอร์อ่ะค่ะ

อาจารย์ช่วยหน่อยนะคะ

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

1 @R23556
ตั้งค่าProperties
Enabled = No
Locked = Yes
2 @R23557
แต่ถ้าไม่ให้ปิด Enabled
Enabled = Yes
Locked = Yes แต่วิธีนี้จะขึ้นรูปเคอเซอร์ครับ
3 @R23558
วิธีแรกคลิกไม่ได้เลยค่ะ
วิธีที่2ไม่อยากให้ขึ้นเคอเซอ

มีวิธีอื่นไหมคะ
4 @R23559
วิธีแรกคลิกไม่ได้เลยค่ะ
วิธีที่2ไม่อยากให้ขึ้นเคอเซอ

ดูเหมือนว่าคุณต้องการให้คลิกได้ แต่ไม่ขึ้นเคอเซอร์ใช่ไหมครับ

ถ้าคลิกได้มันก็จะขึ้นเคอเซอร์อัตโนมัติอยู่แล้ว เพียงแต่ไม่สามารถคีย์ได้ครับ เพราะมันเป็นประเภท Textbox หรือcombobox ครับ

แต่ถ้าต้องการแบบนั้นจริงๆ คงต้องรบกวนให้อ.สันติสุขหรือคุณTTTตอบนะครับ
5 @R23561
ใช่ค่ะ ต้องการแบบ เหมือนกับcomboboxในกล่องReply ในหน้าเวปนี้อ่ะค่ะ

อาจารย์ช่วยหน่อยนะคะ
6 @R23562
ดูเหมือนว่าความต้องการจะคือ Listbox นะ ไม่ใช่ ComboBox
7 @R23563
ลองListboxแล้วคิดว่าไม่ใช่ค่ะ เพราะต้องการให้กดเลือกแล้วแสดงรายการ

แต่Listbox จะแสดงรายการทั้งหมด โดยคลิกเลือกขึ้นลง


ตอนนี้เลยอยากทราบว่าที่ต้องการcomboboxดังกล่าวด้านบน สามารถทำได้หรือไม่คะ

ขอบคุณค่ะ
8 @R23564
คุณก็ไปปรับแต่ง Height property เอาเองเลยครับ พอเข้า On Enter event procedure ก็สั่ง Me.ชื่อลิสท์บ็อกซ์.Height = ค่า โดยที่ค่านี้อาจเป็น Height property ของเท็กบ็อกซ์ตัวอื่นคูณด้วยกี่เท่าก็ว่าไป พอตอน On Exit event procedure ก็สั่งให้ความสูงกลับมาเท่าเดิม
9 @R23565
ผมว่าแบบที่อ.สันติสุขบอกมา ทำแล้วไม่เหมือนที่คุณ11001ต้องการครับ แต่ความต้องการของเขาคือเป็นกล่องCombobox ใช้เฉพาะเลือกรายการอย่างเดียว ห้ามพิมพ์ครับ เหมือนเวลาเราเลือกแบบตัวอักษรในกล่องReplyนี้ครับ ผมลองมาหลายวิธีแล้วไม่ได้ผลเลยครับ ถ้าเราสั่งNoหรือFalse มันจะคลิกเลือกรายการไม่ได้เลย พอจะมีวิธีไหนบ้างครับ
10 @R23566
ไม่ก็...
1) ใช้ Label แทน Text Portion ของ Combobox
2) ใช้ Label อีกตัวใส่อักษรรูปลูกศรลง แทนรูปลูกศรลงใน Combobox
3) ใช้ Listbox แทน Combobox

แล้วก็ควบคุมเอาเอง พอกดลูกศรลง ก็ขยายความสูงของ Listbox พอเลือกค่าใน Listbox ก็เอาค่าไปใส่ใน Caption ของ Label

Cost of Effort คุ้มไหมเนี่ย
11 @R23568
ถ้าหมายถึงกันไม่ให้คีย์เองใน Combobox เท่านั้นก็ใส่โค้ดลงใน Combobox ที่ Event > On Key Down

    If KeyCode = 9 Then ' 9 คือ สามารถคีย์ Tab เปลี่ยนคอนโทรลได้
    Else
        KeyCode = 0
    End If

ทำแล้วจะกันได้ทั้งการ Paste ด้วยปุ่ม Ctrl + v แต่จะกันในเรื่องการคลิ๊กเมาส์ขวาเลือก Paste ไม่ได้ ถ้าจะกันด้วยให้สร้าง Shortcut menu แบบว่างๆ ไม่ต้องมีเมนูอะไร แล้วใส่ใน Property ของ combobox ที่ Other > Shortcut Menu Bar ก็น่าจะกันได้ครบครับ

ส่วนเรื่อง Cursor จำเป็นขนาดต้องไม่มี ? ถ้าจำเป็นขนาดนั้นต้องทำอีกเยอะเหมือนกันนะครับ คือต้องใช้ API ซ่อน Cursor ในเหตุการณ์ต่างๆอีก...
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.6863s