នៅក្នុងកម្មវិធីមួយចំនួនតំរូវឱ្យអ្នកធ្វើការបង្កើត Button តាមតម្រូវការរបស់អ្នកប្រើប្រាស់ ឧទាហរណ៍នៅក្នុង ប្រពន្ធ័គ្រប់គ្រងការកម្មង់អាហារនៅក្នុងភោជនីយដ្ឋាន (Food Order Management System) អ្នកប្រើប្រាស់អាច ធ្វើការបន្ថែមតុ (តំណាងដោយ Button) តាមតម្រូវការ។
ខាងក្រោមនេះនាងខ្ញុំនឹងបង្ហាញអ្នកអំពីរបៀបបង្កើត Button Dynamic ដែលទាញចេញពី Database ជាមួយ VB.NET ។
ជាដំបូង៖ សូមធ្វើការ Design Form ដូចខាងក្រោម

- TextBox: txtBtnName
- Button: btnAdd
- FlowLayoutPanel: FlowLayoutPanelButton
ចំណាំ៖ ចំពោះ Panel ដែលប្រើសម្រាប់ផ្ទុក Button អ្នកគួរជ្រើសយក FlowLayoutPanel ព្រោះវាជួយរៀបចំឱ្យ Button មានលក្ខណៈជាជួរ ដោយមិនចាំបាច់ឱ្យយើងធ្វើការ Set Location ទៅលើ Buttonដោយខ្លួនឯងទេ។
បន្ទាប់មកអ្នកត្រូវមាន Database សម្រាប់ផ្ទុកនូវ អក្សរសម្រាប់បង្ហាញនៅក្នុង Button និមួយៗ ជាមុនសិន។ ហើយនៅពេលដែលអ្នកបើ Form លើកក្រោយចំនួន Button ។
ការសរសេរកូដ
កូដសម្រាប់ Save ឈ្មោះ Button
Sub InsertButton(ByVal btnName As String)
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=BTN.accdb")
Dim comm As New OleDbCommand("Insert into Buttons Values ('" + btnName + "')", con)
con.Open()
comm.ExecuteNonQuery()
con.Close()
End Sub
កូដសម្រាប់បង្កើត Button ដែលត្រូវបានទាញចេញពី Database
Sub CallButton()
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=BTN.accdb")
Dim comm As New OleDbCommand("SELECT * FROM Buttons", con)
con.Open()
Dim dr As OleDbDataReader = comm.ExecuteReader
While dr.Read
Dim btn As New Button
btn.Text = dr(0).ToString
FlowLayoutPanelButton.Controls.Add(btn)
End While
con.Close()
End Sub
**ដើម្បីឱ្យបើក Form មកចេញ Button ដែលមានឈ្មោះនៅក្នុងDatabase សូមហៅ Function CallButton ខាងលើនៅក្នុង Event Form_Load ដូចខាងក្រោម៖
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call CallButton()
End Sub
** សូមហៅ Function InserButton() នៅក្នុងEvent click របស់ btnBtnName ដូចខាក្រោម៖
Private Sub btnBtnName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
FlowLayoutPanelButton.Controls.Clear()
Call InsertButton(txtBtnName.Text)
Call CallButton()
End Sub