 |
|
[.NET]
วิธีการทำให้เทกซ์บ๊อกซ์ Textbox รับค่าได้เฉพาะ ตัวเลข หรือภาษาไทยหรือภาษาอังกฤษใน vb.net ผมมีวิธีแนะนำครับลองเอาไปพิจารณาน่ะครับ |
|
 |
|
|
 |
 |
|
ผมจะไม่อธิบายอะไรมากมายน่ะครับ แต่จะเขียนโค๊ดตัวอย่างให้ดู ลองเอาไปใช้น่ะครับ เพื่อให้เกิดประโยชน์มากที่สุดครับ
Code (VB.NET)
01. Public Class Form1
02.
03. Private Sub TextBox1_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
04. Select Case Asc(e.KeyChar)
05. Case 48 To 57
06. e.Handled = False
07. Case 8, 13, 46
08. e.Handled = False
09.
10. Case Else
11. e.Handled = True
12. MessageBox.Show( "สามารถกดได้แค่ตัวเลข" )
13. End Select
14.
15. End Sub
ต่อกันเลยน่ะครับกับโค๊ดดักภาษาอังกฤษครับ
Code (VB.NET)
01. Private Sub TextBox2_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
02. Select Case Asc(e.KeyChar)
03. Case 48 To 122
04. e.Handled = False
05. Case 8, 13, 46
06. e.Handled = False
07. Case Else
08. e.Handled = True
09. MessageBox.Show( "กรุณาระบุข้อมูลเป็นภาษาอังกฤษ" )
10. End Select
11. End Sub
ต่อไปเป็นการดักภาษาไทยน่ะครับ
Code (VB.NET)
01. Private Sub TextBox3_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
02. Select Case Asc(e.KeyChar)
03. Case 48 To 57
04. e.Handled = False
05. Case 8, 13, 46
06. e.Handled = False
07. Case 161 To 240
08. e.Handled = False
09. Case Else
10. e.Handled = True
11. MessageBox.Show( "กรุณาระบุข้อมูลเป็นภาษาไทย" )
12. End Select
13. End Sub
เพื่อนๆทุกคนลองนำไปประยุกต์ใช้ดูน่ะครับ ผมพยายามไปดพสตรงเขียนบทความแล้ว
แต่ดันเป็นสมาชิกใหม่ใช้งานในส่วนนั้นยังไม่เป็นอ่ะครับต้องขออภัยด้วย
ที่มาตั้งเป็นกระทู้ เพราะอยากเผยแพร่ความรู้ตรงนี้ให้คนที่ยังไม่รู้ได้นำไปใช้กันครับ
ผิดพลาดตรงในก็แนะนำได้น่ะครับ
Tag : .NET, VB.NET
|
|
 |
 |
 |
 |
Date :
2011-12-27 04:34:29 |
By :
worajito |
View :
43455 |
Reply :
21 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
น้ำใจงามครับ มีประโยชน์แน่นอนครับ 
|
 |
 |
 |
 |
Date :
2011-12-27 05:43:55 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ
ความหมายของ e.Handled คืออะไรอะครับ
|
 |
 |
 |
 |
Date :
2011-12-30 22:11:34 |
By :
benz123 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
e.Handled ก็คือโค๊ดที่เอาไว้ย้อนกลับการทำงานไปสู่สภาวะเริ่มต้น ไม่รู้จะอธิบายอย่างไรดี เรียนมาน้อย แค่ ม.3 555+ ถ้าเอาแบบภาษาชาวบ้านตามที่ผมเข้าใจก็คือการย้อนกลับสถานะหรือเหตุการณ์ของคอนโทรลหรือวัตถุนั้นๆ หากมันเป็นเท็จ คอนโทรล หรือวัตถุนั้นๆ ก็จะทำงานไปตามปกติ แต่ถ้าหากมันเป็นจริงคอนโทรลหรือวัตถุนั้นๆ ก็จะย้อนกลับการเหตุการ์ทำงานของตัวเองไปสู่สภาวะเริ่มต้น(คือไม่มีอะไรเกิดขึ้น) เช่น ในเหตุการณ์ keyprees
ซึ่งในตอนแรกค่าทั้งหมดจะเป็นเท็จ โดยรับค่าจากแป้นคีย์บร์อด ซึ่งถ้าเรากดปุ่มใดมันก็จะรับค่า คีย์ของปุ่มนั้นไปประมวลผล
แต่ถ้าหากมันเป็นจริง
มันจะไม่รับรู้ข้อมูลใดๆ เนื่องจากว่ามันได้ย้อนกลับไปตั้งค่าตัวเลขหรือคีย์โค๊ด หรือ แอสกี้โค๊ดกลับไปเป็น0
(จำภาษาอังกฤษไม่ได้ขออภัยด้วยครับ55+) หวังว่าคงเข้าใจน่ะครับ อธิบายเองยัง งงเองเลย555+
|
ประวัติการแก้ไข 2011-12-31 21:43:17
 |
 |
 |
 |
Date :
2011-12-31 21:18:54 |
By :
worajito |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ มีประโยชน์มากๆเลย q^_^'p
|
 |
 |
 |
 |
Date :
2012-01-04 13:29:29 |
By :
q=_='p |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วทำแบบผสม การใช้แบบ ตัวเลขกับตัวอักษร ในฟรอมเดี๋ยวกันได้ป่าวอ่ะ เขียนโค้ดให้ดูด้วยน่ะ
|
 |
 |
 |
 |
Date :
2012-01-27 00:26:08 |
By :
AAA |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค๊ดที่ผมเอามาลงมันก็ผสมตัวเลขกับตัวอักษรอยู่แล้วนี่ครับ ไม่เห็นต้องเขียนให้ดูใหม่เลย
|
 |
 |
 |
 |
Date :
2012-01-29 01:41:45 |
By :
worajito |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุนมากๆๆเลยคับ
|
 |
 |
 |
 |
Date :
2012-05-10 21:41:41 |
By :
TheSkyPy |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จริงๆ แล้วต้องอ่าน MSDN ครับถึงจะกะจ่าง
http://msdn.microsoft.com/en-us/library/system.windows.forms.keypresseventargs.handled.aspx
ใน MSDN บอกไว้ว่า
If the event is not handled, it will be sent to the operating system for default processing. Set Handled to true to cancel the KeyPress event.
แปลได้ว่า ถ้า method ของเรานั่นไม่ต้องการจะจัดการ KeyPress event หรือต้องการที่จะยกเลิก KeyPress event เราต้อง e.Handled = true เพื่อบอก OS ว่าไม่ต้องทำอะไรแล้วนะ ใน method ของเรานั่นสั่งยกเลิก KeyPress event นั่นแล้ว ในกรณีนี้ก็คือถ้า KeyPress ที่เข้ามาไม่ใช่ตัวเลขเรา return true ซึ่งแปลว่าเราจัดการเรียบร้อยแล้วว่าเราจะไม่ print ตัวอัการนั่นใน TextBox OS เมื่อเห็นว่า e.Handled = true ก็จะรู้ทันทีว่าไม่ต้องทำอะไรเลยเพราะ method ได้จัดการเรียบร้อยแล้ว OS ก็จะไม่ print ตัวอักษรนั่นลงใน TextBox ครับ
แต่ถ้าเรา e.Handled = false นั่นก็คือว่าเราจะให้ OS เเป็นคนจัดการ KeyPress event ด้วยนั่นเองครับ
|
 |
 |
 |
 |
Date :
2012-05-10 23:44:09 |
By :
pStudio |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากค่ะ
มีประโยชน์มากๆเลยค่ะ
|
 |
 |
 |
 |
Date :
2012-08-17 14:06:04 |
By :
BKAJU1987 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ   
|
 |
 |
 |
 |
Date :
2012-08-17 14:12:35 |
By :
JaNoRn |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สุดยอดมากครับ ขอบคุณมากครับ มีประโยชน์จริงๆ
|
 |
 |
 |
 |
Date :
2012-09-04 20:53:27 |
By :
bill17259 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบ คุณ มาก ค่ะ ออก มา แบบ สวย งาม มาก ค่ะ
|
 |
 |
 |
 |
Date :
2012-09-16 17:16:20 |
By :
komokomoman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
KeyPress คืออะไรค่ะ
พอเอาไปลองใช้งานจากโค้ดที่พี่ได้โพส มันerror ตรงKeyPress
อยากทราบว่าต้องแก้ยังไงค่ะ
ช่วยหน่อยน่ะค่ะ
|
 |
 |
 |
 |
Date :
2013-01-30 23:27:36 |
By :
keem |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
....
|
ประวัติการแก้ไข 2013-01-31 05:03:44
 |
 |
 |
 |
Date :
2013-01-31 04:53:28 |
By :
kyokohoho |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2013-01-31 05:02:28 |
By :
kyokohoho |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณน่ะค่ะ ลืมบอกไปว่าทำในรูปแบบ Web app อ่ะ ค่ะ ต้องโทษด้วยน่ะค่ะ
แล้วถ้าเป็นแบบ Web App ทำยังไงค่ะ
|
 |
 |
 |
 |
Date :
2013-02-01 02:18:55 |
By :
keem |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณน่ะค่ะ พี่พอจะมีโค้ด script ที่สามารถพิมได้เฉพาะ ภาษาไทยกับภาษาอังกฤษ ไมค่ะ
|
 |
 |
 |
 |
Date :
2013-02-01 10:43:17 |
By :
keem |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|