0

嗨,我再次在最后两个问题之后遇到了另一个问题。由用户重命名的按钮并将按钮的文本输入到文本框中

发生的情况是,当您单击按钮时 label4 是管理员时,会出现一个输入框,询问按钮名称,如果 label4 是其他任何内容,则它将按钮的文本添加到不同的框中。

这一切都很好,我遇到的问题是当我关闭程序然后重新打开它时,所有按钮文本已被删除。

所以简而言之,我要问的是如何将它保存到按钮上,这样如果我关闭程序并重新打开它,文本就会保留在所有按钮上。

我的按钮代码是。

Dim Button As Button = DirectCast(sender, Button)

If Label4.Text = "Admin" Then
    With DirectCast(sender, Button)
        .Text = InputBox("Button Name", "Button Name", .Text)
    End With
Else
    Me.TransactionBindingSource.AddNew()
    Product_NameTextBox.Text = Button.Text

    Try
        Me.ProductTableAdapter.FillByProductName(Me.Database1DataSet.Product, Product_NameTextBox.Text)
    Catch ex As System.Exception
        System.Windows.Forms.MessageBox.Show(ex.Message)
    End Try

    ProductTextBox.Text = Button.Text
    GroupTextBox.Text = GroupTextBox1.Text
    AmountTextBox.Text = AmountTextBox1.Text
    PriceTextBox.Text = PriceTextBox1.Text
    TimeTextBox.Text = TimeOfDay
    DateTextBox.Text = DateString

    Me.Validate()

    Me.TransactionBindingSource.EndEdit()
    Me.TransactionTableAdapter.Update(Me.Database1DataSet)
    Timer2.Enabled = True
    TransNameLB.Items.Add(Button.Text)
    TransPriceLB.Items.Add(PriceTextBox.Text)

    Dim sum As Double
    For x As Integer = 0 To TransPriceLB.Items.Count - 1
        sum += Val(TransPriceLB.Items.Item(x).ToString)
    Next

    TextBox1.Text = sum.ToString
    QTYDrinksTB.Text = TransNameLB.Items.Count
End If

提前感谢您提供的任何帮助

克雷格

4

2 回答 2

2

除了 Mark Hall 所说的(出色的答案!),VB 可以自动为您完成这一切。您必须设置与应用程序设置的绑定。

  1. 转到按钮的属性选项卡
  2. 展开 (ApplicationSettings) 属性
  3. 单击文本区域。将出现一个下拉菜单,选择新建
  4. 在弹出的对话框中,给它一个名字并确保范围是用户

现在,应用程序会自动记住您设置的文本,并在应用程序启动时重新加载

在此处输入图像描述

于 2012-07-28T02:58:50.363 回答
1

由于您使用的是 Vb.net,因此您可以保留用户设置的方法之一是使用My.Settings对象。这是一个简单的例子,但应该给你的想法。

首先,我通过右键单击项目并转到项目属性设置选项卡,创建了一个与按钮名称同名的设置。

在此处输入图像描述

然后我像这样将它保存在按钮单击事件中。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim btn As Button = DirectCast(sender, Button)

    With DirectCast(sender, Button)
        .Text = InputBox("Button Name", "Button Name", .Text)
        My.MySettings.Default.Item(Button1.Name) = .Text
        My.MySettings.Default.Save()
    End With
End Sub

下一步是遍历 Forms 控件集合中的所有控件,以找到将保存的文本放入的按钮。

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    For Each cntrl As Control In Me.Controls
        If TypeOf cntrl Is Button Then
            If Not String.IsNullOrEmpty(My.MySettings.Default.Item(cntrl.Name).ToString) Then 'Check to make sure there is Data there
                cntrl.Text = My.MySettings.Default.Item(cntrl.Name).ToString
            End If
        End If
    Next
End Sub

或者您也可以明确使用按钮名称。

 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    If Not String.IsNullOrEmpty(My.MySettings.Default.Item(Button1.Name).ToString) Then
        Button1.Text = My.MySettings.Default.Item(Button1.Name).ToString
    End If

End Sub
于 2012-07-28T02:50:09.173 回答