winforms 为什么不保存My.Settings?

14ifxucb  于 2023-08-07  发布在  其他
关注(0)|答案(2)|浏览(129)

我在My.Settings中有一个名为Categories的设置。所以在一个模块中,我有一个公共sub,它运行以下代码:

Public Sub DeclareCategories()
    Dim currentCategory As String
    '   GET CURRENT CATEGORIES
    currentCategory = My.Settings.Categories

    '   ADD THE CATEGORY
    My.Settings.Categories = currentCategory & frmNewCategory.txtCategoryName.Text & ","
    My.Settings.Save()
End Sub

字符串
然后,用户将在单击该表单frmNewCategory中的按钮时更新My.Settings.Categories值。下面是按钮的代码:

If txtCategoryName.Text <> "" Then
    Try
        DeclareCategories()
        MsgBox("Successfully added the new category!")
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
    End Try

Else
    MsgBox("Please enter a category name before adding.", MsgBoxStyle.Critical)

End If


由于某种原因,我的设置不保存。Categories也是字符串。我甚至尝试删除所有的currentCategory的东西,只是保持:

My.Settings.Categories = frmNewCategory.txtCategoryName.Text
My.Settings.Save()


但它仍然没有保存设置。任何建议将不胜感激,谢谢。

cqoc49vn

cqoc49vn1#

请注意,My.Settings仅保存在保存它们的计算机上。示例:您的类别设置将保存在计算机上的文件中。
如果将设置保存在“类别”中,并将可执行应用程序放在另一台计算机上,则“类别”设置将为空。
另外,检查字符串currentCategory & frmNewCategory.txtCategoryName.Text以确保该字符串实际上不是空的。

inb24sb2

inb24sb22#

在Windows 10上,使用VS 2022,我创建了一个空的Windows Forms .NET应用程序。然后,我在用户范围内定义了一个默认值的设置“HeyYou”。在项目设置/应用程序中,我选中了“关机时保存我的设置”。

public class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      MyTextBox.Text = My.Settings.HeyYou
End Class

字符串
但是它不起作用,尽管上面提到的AppData下的user.config包含一定的值。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <userSettings>
        <MyApp.My.MySettings>
            <setting name="HeyYou" serializeAs="String">
                <value>C:\scratch</value>
            </setting>
        </FMyApp.My.MySettings>
    </userSettings>
</configuration>


我在几台机器上为这个现象烦恼了几个月。我的猜测是,它与VS 2022一起出现。

相关问题