รายละเอียดของการตอบ ::
คือปัญหาอยู่ที่ เวลายิงบาร์โค้ดแล้วมันเอาแต่ละตัวที่เพิ่มเข้าไปใน textbox ไปค้นหาครับ ผมอยากให้พิมพ์เสร็จก่อนค่อยเอาไปค้นหา สมมุติบาร์โค้ด 8851342
8 มันก็เอา 8 ไปค้นหา
88 มันก็เอา 88 ไปค้นหา
885 มันก็เอา 885 ไปค้นหา
8851 มันก็เอา 8851 ไปค้นหา
88513 มันก็เอา 88513 ไปค้นหา
885134 มันก็เอา 885134 ไปค้นหา
8851342 มันก็เอา 8851342 ไปค้นหา
เอาจริงๆบาร์โค้ดยาวกว่านี้นะครับ ลองคิดดูเราเสียเวลาไปกี่วินาทีกับการค้นหาแต่ละตัวอักษร ผมนับได้ 2-4 วินาที อาจจะไม่นานมากแต่ถ้าเราทำหลายสินค้ามันก็เสียเวลาไม่ใช่น้อย
ทีนี้ผมก็ทำตามคำแนะนำ No. 1 คือหน่วงเวลา ผมตั้งไว้ 300ms ซึ่งก็ใช้ได้เลย แต่มาติดปัญหาอีกครั้งตอนมัน Enter สุดท้ายนี่แหละ (เพราะบาร์โค้ดยิงเสร็จมันจะขึ้นบรรทัดใหม่ใช่ไหมละ) พอมัน Enter แต่ข้อมูลยังไม่ได้ Query เพราะติดหน่วงเวลาอยู่
ดูตามภาพนะครับ ถ้าสมมุติเราพิมพ์เสร็จรอ 300ms มันจะเอาข้อมูลที่ใกล้เคียงมาแสดงใน dataGridView1
สมมุติการพิมพ์ค้นหาเนาะ พิมพ์ว่า berry มันก็จะขึ้นแบบภาพด้านล่างนี้ คือแสดงข้อมูลสินค้าที่มีคำว่า berry ใน dataGridView1
ถ้ายิงบาร์โค้ดแน่นอนมันจะขึ้นสินค้าเดียว แล้วตัวเครื่องยิงบาร์โค้ดมัน Enter เมื่อไร ก็เป็นการเลือกสินค้า พอเข้าใจเนาะ
มาต่อที่การยิงบาร์โค้ดครับ ใน dataGridView1 ยังว่างเปล่า เพราะติดหน่วงเวลาที่ผมตั้งไว้ 300ms แล้วมีการกด Enter ก่อนที่มีข้อมูลบน dataGridView1 มันก็จะไปเข้าเงื่อนไขว่า ไม่พบสินค้า "8851342" เพราะไม่พบอะไรใน dataGridView1
จริงๆมันอาจจะรอ..ประมวลผลอยู่ 300ms หลังจากขึ้นข้อความไม่พบสินค้าแล้ว ..ใน dataGridView1 ก็แสดงข้อมูลสินค้าบาร์โค้ด 8851342 ขึ้นมา เพราะหมดเวลาหน่วงแล้ว
อ่าวทีนี้ผมก็เลยเจอกับปัญหาใหม่ที่ว่าทำยังไงให้ Enter มันหน่วงด้วยกับเขา เพราะการกด Enter มันเข้า Event _KeyDown แต่การพิมพ์ตัวอักษรมันเข้า Event _TextChanged งื้อ.. .ช่วยคิดหน่อยครับ