Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,030

HOME > .NET Framework > Forum > การสร้างปุ่ม Button แบบ Array คือว่าผมกำลังจะทำโปรแกรมร้านในเรื่องการจัดการเกี่ยวกับที่นั่งครับ



 

การสร้างปุ่ม Button แบบ Array คือว่าผมกำลังจะทำโปรแกรมร้านในเรื่องการจัดการเกี่ยวกับที่นั่งครับ

 



Topic : 040539



โพสกระทู้ ( 482 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




คือว่าผมกำลังจะทำโปรแกรมร้านในเรื่องการจัดการเกี่ยวกับที่นั่งครับ ผมอยากได้โค๊ตในการทำปุ่มแบบอาร์เรย์และการหาว่าผู้ใช้คลิกปุ่มที่เท่าไร อาจจะอธิบายไม่ค่อยเข้าใจหน่อยเท่าไรนะครับ แต่ช่วยหน่อยนะครับ ขอเป็นโค๊ต Vb



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-03-19 10:06:22 By : babyprogrammer View : 4045 Reply : 17
 

 

No. 1



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ใช้ event oncommand ครับ

เพราะมันสามารถส่ง command name กับ command arg

ทำให้สามารถแยกความแตกต่างของแต่ละปุ่มได้




เวงกำ winform ไม่มี oncommand event






Date : 2010-03-19 11:28:21 By : tungman
 


 

No. 2



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


OK-HEADER

.NET ไม่มี control array แล้วค่ะ แต่ใช้วิธีเชื่อมต่อด้วย delegate เอา
แล้วค่อยมาใช้ argument sender หาตัว control ค่ะ ในกรณีของ vb
จะมี keyword Handles ช่วยให้ง่ายขึ้นเยอะ โดยสร้าง sub / method ของ Control event
แล้ว Add (ชื่อ Control).(ชื่อ event) คั่นด้วย comma (,) ไปเรื่อยๆเอาค่ะ
ลองเอาตัวอย่างไปรันดูนะคะ


Default.ASPX
Code (ASP)
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="ทั่วไป"></asp:Label><br />
        <asp:Button ID="Button1" runat="server" Text="ปุ่มที่ 1" />
        <asp:Button ID="Button2" runat="server" Text="ปุ่มที่ 2" />
        <asp:Button ID="Button3" runat="server" Text="ปุ่มที่ 3" />
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="ประยุกต์"></asp:Label>
        <br />
        <asp:Button ID="Button4" runat="server" Text="ปุ่มที่ 4" />
        <asp:Button ID="Button5" runat="server" Text="ปุ่มที่ 5" />
        &nbsp;&nbsp;|&nbsp;&nbsp;
        <asp:Button ID="ButtonAttachEvent" runat="server" Text="Attach event" />
        <asp:Button ID="ButtonDetachEvent" runat="server" Text="Detach event" 
            style="height: 26px" />
        <br />
        
    </div>
    </form>
</body>
</html>



Code (VB.NET)
'Code Behind
Partial Class _Default
    Inherits System.Web.UI.Page
    'Private workFlag As Boolean = False

    Private Property workFlag() As Boolean
        Get
            If (ViewState("_WorkFlag") = Nothing) Then
                ViewState("_WorkFlag") = False
            End If
            Return CType(ViewState("_WorkFlag"), Boolean)
        End Get
        Set(ByVal value As Boolean)
            ViewState("_WorkFlag") = value
        End Set
    End Property


    Protected Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs) Handles Me.Load
        If (Page.IsPostBack) Then
            Response.Write("[Page load] ")
            If (Me.workFlag) Then
                OnAddHanlder()
            Else
                OnDeleteHandler()
            End If
        End If
    End Sub

    Protected Sub AllButton_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Button1.Click, Button2.Click, Button3.Click

        Dim ClickButton As System.Web.UI.WebControls.Button = sender
        Response.Write("{" + ClickButton.ID + "}")

    End Sub

    Protected Sub ButtonAttachEvent_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonAttachEvent.Click
        Me.workFlag = True
    End Sub

    Protected Sub ButtonDetachEvent_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonDetachEvent.Click
        Me.workFlag = False
    End Sub

    Private Sub OnAddHanlder()
        AddHandler Me.Button4.Click, AddressOf Me.AllButton_Click
        AddHandler Me.Button5.Click, AddressOf Me.AllButton_Click
        Response.Write("[ปุ่มที่ 4,5 เชื่อมต่อแล้ว] ")
    End Sub
    Private Sub OnDeleteHandler()
        RemoveHandler Me.Button4.Click, AddressOf Me.AllButton_Click
        RemoveHandler Me.Button5.Click, AddressOf Me.AllButton_Click
        Response.Write("[ยกเลิกการเชื่อมต่อปุ่มที่ 4,5] ")
    End Sub
End Class

Date : 2010-03-19 11:46:50 By : blurEye
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


เอ้ากำ session expire อีกแล้ว ^^'

เพราะเป็น web app เลยต้องมีการดัดแปลงน่ะค่ะ มันเกี่ยวกับ page cycle
ถ้าเป็น winapp ก็ addhandler / removehandler ได้ตรงๆเลย
Date : 2010-03-19 11:49:43 By : blurEye
 


 

No. 4



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ยังมีอยู่นะ array object น่ะ

สามารถทำ object ทุกชนิดเป็น array ได้เลยโดยใช้ List ช่วย

Code (VB.NET)
Imports System.Collections.Generic

Code (VB.NET)
Dim ArrayButton As List(Of Button) = New List(Of Button)()

For i As Integer = 1 To 4
    Dim aButton As Button = New Button()
    aButton.Text = "Button" & i.ToString()

    ArrayButton.Add(aButton)
Next

จะอ้างอิงแบบ array ก็ได้
Code (VB.NET)
Dim txt1 As String = ArrayButton(0).Text
Dim txt2 As String = ArrayButton(1).Text
Dim txt3 As String = ArrayButton(2).Text
Dim txt4 As String = ArrayButton(3).Text

หรือจะอ้างอิงแบบนี้ก็ได้
Code (VB.NET)
For Each aButton As Button In ArrayButton
    txt1 &= aButton.Text
Next


เอาไว้เป็นอีกทางเลือกนึงแล้วกันนะ
Date : 2010-03-19 12:11:28 By : tungman
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใน TC คนเก่ง .NET ก็เยอะเหมือนกันน่ะเนีย บางเรื่องผมยังไม่รู้เรื่องเลยครับ ตอนนี้ก็ศึกษาไปเรื่อย ๆ เช่นเดียวกัน
Date : 2010-03-19 12:16:17 By : webmaster
 


 

No. 6



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


Quote:
เอาไว้เป็นอีกทางเลือกนึงแล้วกันนะ


โหยย พี่ตึ๋งศรีถึงกะจะยอมเป็นทางเลือกเลยหรอคะ สาวไหนน้าโชคดีปานนั้น อิอิ

Quote:
ใน TC คนเก่ง .NET ก็เยอะเหมือนกันน่ะเนีย บางเรื่องผมยังไม่รู้เรื่องเลยครับ ตอนนี้ก็ศึกษาไปเรื่อย ๆ เช่นเดียวกัน

ป่าวเก่งค่ะแอบลอกคนข้างๆมาค่ะ ^^' คนนี้ดิคะขั้นเทพ >> tungman
Date : 2010-03-19 12:25:24 By : blurEye
 


 

No. 7

Guest


ส่วนของโค๊ตที่ใช้เช็คว่าเขากดปุ่มที่เท่าไรนั้นทำอย่างไรครับตรงนี้อยากได้มากๆเลย โค๊ตที่พี่Stupidให้มาผมยังไม่ค่อยเข้าใจเท่าไรครับ
แต่อย่างไงก็ขอขอบคุณพี่ๆทุกคนมากครับ
Date : 2010-03-19 13:06:10 By : babyprogrammer
 


 

No. 8



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


Quote:
โค๊ตที่ใช้เช็คว่าเขากดปุ่มที่เท่าไรนั้นทำอย่างไรครับตรงนี้อยากได้มากๆเลย


คือส่วนนี้ค่ะ แต่ถ้าอยากเข้าใจต้องเอาไปรันดูทั้ง Page ค่ะ
อีกอย่างเกรงใจค่ะ คงไม่ใช่พี่มั้งคะ เพิ่งจา 21 อยู่ปีสามค่ะ

Code (VB.NET)
    Protected Sub AllButton_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Button1.Click, Button2.Click, Button3.Click

        Dim ClickButton As System.Web.UI.WebControls.Button = sender
        Response.Write("{" + ClickButton.ID + "}")

    End Sub


Date : 2010-03-19 13:15:00 By : blurEye
 


 

No. 9



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

น้องเค้าบอกว่าปี 3 เอง แต่น้องเค้าเก่งจริง ๆ
Date : 2010-03-19 13:18:00 By : webmaster
 


 

No. 10



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ไม่มีใครเทพหรอกครับ ผมยังรู้ไม่ถึง 10% ของ framework เลย ยังไม่รู้อีกเยอะ

เข้ามาในนี้เพื่อหาโจทย์มาซ้อมมือ แบบเนียนๆ นั่นแหละครับ

Quote:
ส่วนของโค๊ตที่ใช้เช็คว่าเขากดปุ่มที่เท่าไรนั้นทำอย่างไรครับตรงนี้อยากได้ มากๆเลย โค๊ตที่พี่Stupidให้มาผมยังไม่ค่อยเข้าใจเท่าไรครับ
แต่อย่างไงก็ขอขอบคุณพี่ๆทุกคนมากครับ


มันเป็น win หรือ web ล่ะครับจะได้ตอบถูก ตอนนี้ผมสับสน
Date : 2010-03-19 13:18:58 By : tungman
 


 

No. 11



โพสกระทู้ ( 482 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เป็น win ครับพี่tungman
Date : 2010-03-19 13:23:17 By : babyprogrammer
 


 

No. 12



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


WinApp นะคะ
New Project เปล่ามาแล้วที่ Form1 ไม่ต้องใส่ control อะไรทั้งนั้น
ก้อป code ไปใส่ค่ะ


Code (VB.NET)
Imports System.Collections.Generic
Imports System.Windows.Forms

Public Class Form1
    Private ButtonList As List(Of Button) = New List(Of Button)()
    Private Const MaxButtonNumber As Integer = 5

    Private AttachEventButton As Button = New Button()
    Private DetachEventButton As Button = New Button()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Width = 400
        Me.Height = 400
       
        OnCreateButton()


    End Sub
    Private Sub OnCreateButton()

        For i As Integer = 0 To Me.MaxButtonNumber - 1
            Dim ActiveButton As Button = New Button()
            With ActiveButton
                .Text = "Button " + i.ToString()
                .Height = 30
                .Width = 100
                .Left = 10
                .Top = 10 + (i * (ActiveButton.Height + 4))
                .Name = "ปุ่มทดสอบที่ " + i.ToString()
            End With
            Me.Controls.Add(ActiveButton)
            ButtonList.Add(ActiveButton)
        Next


        With AttachEventButton
            .Text = "แปะ event"
            .Height = 30
            .Width = 100
            .Left = 200
            .Top = ButtonList(0).Top
            .Visible = True
        End With
        Me.Controls.Add(AttachEventButton)

        With DetachEventButton
            .Text = "ยกเลิก event"
            .Height = 30
            .Width = 100
            .Left = AttachEventButton.Left
            .Top = AttachEventButton.Top
            .Visible = False
        End With
        Me.Controls.Add(DetachEventButton)

        AddHandler AttachEventButton.Click, AddressOf Me.AttachEventButton_Click
        AddHandler DetachEventButton.Click, AddressOf Me.detachEventButton_Click

    End Sub

    Private Sub AllButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim ClickButton As Button = sender

        MessageBox.Show("กดปุ่ม [" + ClickButton.Name + "] แล้ว ", "ตรวจสอบการกดปุ่ม")
    End Sub

    Private Sub AttachEventButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        For Each itemButton As Button In ButtonList
            AddHandler itemButton.Click, AddressOf AllButton_Click
        Next

        MessageBox.Show("เชื่อมต่อ event แล้ว ", "Event attach")
        AttachEventButton.Visible = False
        DetachEventButton.Visible = True
    End Sub

    Private Sub detachEventButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        For Each itemButton As Button In ButtonList
            RemoveHandler itemButton.Click, AddressOf AllButton_Click
        Next

        MessageBox.Show(Me, "ยกเลิกการเชื่อมต่อ event", "Event detach" _
            , MessageBoxButtons.OK, MessageBoxIcon.Information)
        AttachEventButton.Visible = True
        DetachEventButton.Visible = False
    End Sub
End Class

Date : 2010-03-19 14:16:10 By : blurEye
 


 

No. 13



โพสกระทู้ ( 482 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอบคุณทุกๆคนมากครับที่มาช่วย
Date : 2010-03-19 14:31:54 By : babyprogrammer
 


 

No. 14



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ให้อีกแบบ ลองดูแบบนี้ได้ไหม ขออภัยถ้า error เพราะโค้ดสด

Code (VB.NET)
Imports System.Collections.Generic

Code (VB.NET)
Dim ArrayButton As New List(Of Button)

For i As Integer = 1 To 10
    Dim aButton As New Button()
    aButton.Text = "Button" & i.ToString()
    aButton.Location = New Point(15, 15 + (i * 20))
    AddHandler aButton.Click, AddressOf aButton_Click

    Me.Controls.Add(aButton)
Next

Code (VB.NET)
Protected Sub aButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim aButton As Button = CType(sender, Button)
    Dim txt As String = aButton.Text
End Sub

Date : 2010-03-19 14:45:20 By : tungman
 


 

No. 15

Guest


โค๊ตของพี่tungmanเราจะสามารถหาค่าIndexของแต่ละปุ่มได้ไงครับผมลองแล้วไม่ได้
Date : 2010-03-19 20:36:43 By : babyprogrammer
 


 

No. 16

Guest


ไม่ login เพราะเลขสวย

Code (VB.NET)
Imports System.Collections.Generic

Code (VB.NET)
Private Dim ArrayButton As List(Of Button)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ArrayButton = New As List(Of Button)()

    For i As Integer = 1 To 10
        Dim aButton As New Button()
        aButton.Text = "Button" & i.ToString()
        aButton.Location = New Point(15, 15 + (i * 20))
        AddHandler aButton.Click, AddressOf aButton_Click

        Me.Controls.Add(aButton)
    Next
End Sub

Code (VB.NET)
Protected Sub aButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim aButton As Button = CType(sender, Button)
    Dim txt As String = FindIndex(aButton.Text).ToString()
End Sub

Code (VB.NET)
Protected Function FindIndex(ByVal ButtonName As String) As Integer
    Dim Result As Integer = 0
   
    For Each aButton As Button In ArrayButton
        If aButton.Text = ButtonName Then
            Exit For
        End If
       
        Result += 1
    Next
   
    Return Result
End Function

Date : 2010-03-19 21:34:43 By : tungman
 


 

No. 17



โพสกระทู้ ( 482 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอบคุณสำหรับความมีน้ำใจของพวกพี่ๆทุกคนที่ให้ความรูผมครับ
Date : 2010-03-20 09:09:04 By : babyprogrammer
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การสร้างปุ่ม Button แบบ Array คือว่าผมกำลังจะทำโปรแกรมร้านในเรื่องการจัดการเกี่ยวกับที่นั่งครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่