• 创建按钮数组的简单代码


    介绍 我曾经试用过使用VB6编写电话索引程序。我想添加26个按钮到我的表格字母英语字符A..Z(一个按钮保存一个字符)在我的手机索引数据库文件中搜索记录。 我发现它很容易,因为VB6允许创建按钮数组或任何控件数组。当我想用c#或VB重写相同的程序时。我发现在窗体中添加26个按钮是不切实际的,因为Visual Studio .NET不像VB6那样能够创建控件数组。 在本文中,您将发现创建一个按钮数组非常容易,您可以使用这个思想来创建一个用于在数据库文件中搜索的工具。 稍后我将写另一篇文章来解释如何使用这个想法在作为数据库的电话索引中进行搜索。 背景 我创建了两个项目。我用c#(2003)编写了一个代码,用VB编写了另一个代码。净(2003)。你可以在本文开头的下载链接中找到我的两个项目。 使用的代码 c#代码

    private void AddButtons()
    { 
        int xPos = 0; 
        int yPos = 0; 
        // Declare and assign number of buttons = 26 
        System.Windows.Forms.Button[] btnArray = new System.Windows.Forms.Button[26]; 
        // Create (26) Buttons: 
        for (int i = 0; i < 26; i++) 
        { 
            // Initialize one variable 
            btnArray[i] = new System.Windows.Forms.Button(); 
        } 
        int n = 0; 
    
        while(n < 26) 
        { 
            btnArray[n].Tag = n + 1; // Tag of button 
            btnArray[n].Width = 24; // Width of button 
            btnArray[n].Height = 20; // Height of button 
            if(n == 13) // Location of second line of buttons: 
            { 
                xPos = 0; 
                yPos = 20; 
            } 
            // Location of button: 
            btnArray[n].Left = xPos; 
            btnArray[n].Top = yPos; 
            // Add buttons to a Panel: 
            pnlButtons.Controls.Add(btnArray[n]); // Let panel hold the Buttons 
            xPos = xPos + btnArray[n].Width; // Left of next button 
            // Write English Character: 
            btnArray[n].Text = ((char)(n + 65)).ToString(); 
    
            /* **************************************************************** 
            You can use following code instead previous line 
            char[] Alphabet = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 
            'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 
            'W', 'X', 'Y', 'Z'}; btnArray[n].Text = Alphabet[n].ToString(); 
            //**************************************************************** */ 
    
            // the Event of click Button 
            btnArray[n].Click += new System.EventHandler(ClickButton); 
            n++; 
        } 
        btnAddButton.Enabled = false; // not need now to this button now 
        label1.Visible = true; 
    } 
    
    // Result of (Click Button) event, get the text of button 
    public void ClickButton(Object sender, System.EventArgs e) 
    { 
        Button btn = (Button) sender; 
        MessageBox.Show("You clicked character [" + btn.Text + "]"); 
    }  

    VB代码

    Private Sub AddButtons()
        Dim xPos As Integer = 0
        Dim yPos As Integer = 0
        Dim n As Integer = 0
        ' Declare and Initialize one variable    
        Dim btnArray(26) As System.Windows.Forms.Button    
        For i As Integer = 0 To 25        
            btnArray(i) = New System.Windows.Forms.Button
        Next i
    
        While (n < 26)
            With (btnArray(n))
                .Tag = n + 1 ' Tag of button
                .Width = 24 ' Width of button
                .Height = 20 ' Height of button
                If (n = 13) Then ' Location of second line of buttons:
                    xPos = 0
                    yPos = 20
                End If            ' Location of button:            .Left = xPos
                .Top = yPos
                ' Add buttons to a Panel:            
                pnlButtons.Controls.Add(btnArray(n)) ' Let panel hold the Buttons
                xPos = xPos + .Width ' Left of next button
                ' Write English Character:            .Text = Chr(n + 65)
    
                ' ****************************************************************
                ' You can use following code instead previous line
                ' Dim Alphabet() As Char = {"A", "B", "C", "D", "E", "F", "G", _
                ' "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", _
                ' "U", "V", "W", "X", "Y", "Z"}
                ' .Text = Alphabet(n)
                ' ****************************************************************
                ' for Event of click Button            
                AddHandler .Click, AddressOf Me.ClickButton
                n += 1
            End With
        End While
        btnAddButton.Enabled = False ' not need now to this button now
        label1.Visible = True
    End Sub
    ' Result of (Click Button) event, get the text of button
    Public Sub ClickButton(ByVal sender As Object, ByVal e As System.EventArgs) _
    	ndles MyBase.Click
        Dim btn As Button = sender
        MessageBox.Show("You clicked character [" + btn.Text + "]")
    End Sub 

    最后的话 我希望这篇文章是有用的。如果你有什么想法,请告诉我。感谢CodeProject和所有人。 Mostafa Kaisounm_kaisoun@hotmail.com 本文转载于:http://www.diyabc.com/frontweb/news462.html

  • 相关阅读:
    WCF初探-21:WCF终结点(endpoint)
    WCF初探-20:WCF错误协定
    WCF初探-19:WCF消息协定
    WCF初探-18:WCF数据协定之KnownType
    WCF初探-17:WCF数据协定之等效性
    WCF初探-16:WCF数据协定之基础知识
    WCF初探-15:WCF操作协定
    WCF初探-14:WCF服务协定
    WCF初探-13:WCF客户端为双工服务创建回调对象
    WCF初探-12:WCF客户端异常处理
  • 原文地址:https://www.cnblogs.com/Dincat/p/13450166.html
Copyright © 2020-2023  润新知