[VB6] - กำหนดให้ MSFlexGrid อยู่ที่แถวแรกเสมอ
แก้ไขครั้งสุดท้ายโดย my2alee เมื่อ 2020-5-27 12:31ผมมีตารางแสดงข้อมูลหลักตามรูป (MSFlexGrid1) และ ตารางแสดงข้อมูลย่อย(MSFlexGrid2)เมื่อคลิกข้อมูลจากตารางที่ 1 ก็จะเชื่อมไปดึงข้อมูลมาแสดงในตารางที่ 2 ครับ
ถ้าผมคลิกข้อมูลในตารางที่ 1 ต้องการให้แถบสีขึ้นมาที่แถวแรกของข้อมูลตารางย่อยทุกการคลิกของตารางหลัก
(ไม่ว่าเราจะคลิกตารางย่อยไปแถวใดก็ตาม พอคลิกตารางหลักแถวไหนก็ได้ ให้แถบสีมาอยู่แถวแรกทุกครั้งของตารางย่อย)
--เขียนซะยาว ไม่รู้เข้าใจถูกไหม--
ขอบคุณล่วงหน้าครับ
ไปที่เหตุการณ์ Click ในตารางกริดตัวที่ 1 พอคลิ๊กแถวไหน ก็ให้โฟกัสไปกริดตัวที่ 2 เช่น Grid2.SetFocus หากอยากให้โฟกัสไปที่แถวแรก ก็ส่ง SendKey "^{HOME}" หรือส่งการกดปุ่ม Ctrl + Home ให้กับกริดตัวที่ 2 ครับ thongkorn ตอบกลับเมื่อ 2020-5-29 13:28
ไปที่เหตุการณ์ Click ในตารางกริดตัวที่ 1 พอคลิ๊กแถวไหน...
ขอบคุณมากครับ อ.
เพิ่มเติมนะครับ
จากคำแนะนำของ อ. มันจะใช้ได้ครั้งแรกและกรณีที่เราไม่ได้ไปคลิกตาราง 2 ไปแถวอื่น
แต่ถ้าผมคลิกตาราง 2 ไปแถวอื่น สมมุติแถว 10/ พอมาคลิกตาราง 1 ตาราง 2 จะอยู่ที่แถว 10 ตลอด ไม่ว่าเราจะคลิกตาราง 1 ไปแถวอื่นๆก็ตาม (ไม่งงนะ 555)
สรุป ผมลองปรับไปเรื่อยจากแนวทางของ อ.
คือ ใน event คลิกของตารางแรก
'Call Data
Call SetupfgDataHis 'เซ็ตตาราง 2 ใหม่ <**** เพิ่มเติมจากของ อ.
fgHistory.SetFocus 'เซ็ตโพกัสไปตาราง 2
Call DisplayfgDataHis(lblHnSelect.Caption) 'ดึงข้อมูลมาแสดงที่ตาราง 2
Sendkeys "{home}" 'ส่งคีย์
ขอบคุณ อ. ครับ สำหรับแนวทาง
หน้า:
[1]