ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3777|ตอบกลับ: 1

[VB.NET] การสร้างปุ่มคำสั่ง (Button Control) ในลักษณะแบบ Run Time หรือการสั่งด้วยโค้ด

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5973

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5973




การสร้าง Control ต่างๆบน Visual Basic เรามักจะใช้การ Design Time หรือ จับลาก Control มาวางแล้วปรับคุณสมบัติต่างๆ และมันก็จะแสดงผลให้เราเห็นได้ทันทีทันใด แต่ในบางกรณีเราไม่สามารถจะล่วงรู้ล่วงหน้าได้ว่าจำนวน Control ที่ต้องใช้งานมีกี่ตัวกันแน่ ดังนั้นการใช้วิธีการสร้าง Control แบบ Run Time หรือสั่งด้วยโค้ด จนกว่าคำสั่งจะทำงานไปถึง มันจึงจะแสดงผลให้เห็นได้ วิธีการนี้จะมีประสิทธิภาพและยืดหยุ่นสูงมาก เหล่าบรรดามือใหม่ทั้งหลาย ควรจะต้องศึกษาเรียนรู้กันไว้ด้วยน่ะขอรับกระผม


มาดูโค้ดกันเถอะ ... เป็นการสร้าง Button Control ให้อยู่ภายใต้กรอบของ Panel Control อีกที  
  1. ' / --------------------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose: Create Button @Runtime with VB.NET
  8. ' / Microsoft Visual Basic .NET (2010)
  9. ' /
  10. ' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
  11. ' / You can modify and/or distribute without to inform the developer.
  12. ' / --------------------------------------------------------------------------------

  13. Public Class frmCreateButtonRunTime
  14.     Private pn As New Panel()
  15.     Private Buttons As New Dictionary(Of String, Button)

  16.     Private Sub frmCreateButtonRunTime_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  17.         '// Create Panel
  18.         With pn
  19.             .Location = New System.Drawing.Point(1, 1)
  20.             .Size = New System.Drawing.Size(405, Me.Height - 45)
  21.             .BackColor = Color.Moccasin
  22.             .AutoScroll = True
  23.         End With
  24.         '// ใส่ Panel ลงบนฟอร์ม
  25.         Me.Controls.Add(pn)
  26.         '// สร้างปุ่ม (Button) ลงใน Panel (จำนวนหลัก, จำนวนปุ่ม)
  27.         Call AddButtons(4, 19)
  28.     End Sub

  29.     '// เพิ่มปุ่มคำสั่ง (Button Control)
  30.     Private Sub AddButtons(ByVal ColCount As Byte, ByVal MaxBtn As Byte)
  31.         For i As Integer = 0 To MaxBtn - 1
  32.             Dim B As New Button
  33.             pn.Controls.Add(B)
  34.             With B
  35.                 .Height = 80
  36.                 .Width = 100
  37.                 .Left = (i Mod ColCount) * B.Width
  38.                 .Top = (i \ ColCount) * B.Height
  39.                 .Text = Chr((i \ ColCount) + Asc("A")) & i Mod ColCount + 1
  40.                 Buttons.Add(B.Text, B)
  41.                 .Tag = i
  42.                 .Cursor = Cursors.Hand
  43.                 .ForeColor = Color.Black
  44.                 .BackColor = Color.DeepSkyBlue
  45.             End With
  46.             '// Force events handler.
  47.             AddHandler B.Click, AddressOf ClickButton
  48.         Next
  49.     End Sub

  50.     '// Click Button event, get the text of button
  51.     Public Sub ClickButton(ByVal sender As Object, ByVal e As System.EventArgs)
  52.         Dim btn As Button = sender
  53.         MessageBox.Show("คุณคลิ๊ก [" + btn.Text + "]" & vbCrLf & "Tag=" & btn.Tag & " จะเป็นค่า Primary Key")
  54.         btn.ForeColor = Color.White
  55.         btn.BackColor = Color.Maroon
  56.     End Sub

  57. End Class
คัดลอกไปที่คลิปบอร์ด


ดาวน์โหลดโค้ดต้นฉบับเต็ม VB.NET (2010) ได้ที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

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

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 19:20:09 | ดูโพสต์ทั้งหมด

ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 19:23 , Processed in 0.259768 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้