C#属性设置从第二次开始工作

时间:2012-01-06 10:06:28

标签: winforms

问题在于:我发布了一个使用ClickOnce的Windows窗体制作的应用程序。因此,我无法在安装前显示服务条款。客户决定在安装后显示一些服务条款页面,如果用户通过按下按钮同意条款,则显示主应用程序。问题是,安装后应用程序显示ToS,用户接受,并在第一次重启后,再次向用户显示ToS!如果他接受,下次用户打开应用程序(重启后或应用程序关闭并再次打开后)将不再出现此问题,即如果用户同意ToS主应用程序将显示,问ToS。

在设置中定义tos的代码:

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool tos {
    get {
        return ((bool)(this["tos"]));
    }
    set {
        this["tos"] = value;
    }
}

应用启动时检查ToS的代码:

bool tosB = Properties.Settings.Default.tos;
if (!tosB)
{
    this.tab_control.SelectTab(this.TOS_PAGE);
    this.richTextBox1.Rtf = 
        global::MyAppName.Properties.Resources.terms_and_conditions;
}
else
{
    check_connectivity();
}

当用户使用我同意按钮时运行的代码:

private void button2_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.tos = true;
    Properties.Settings.Default.Save();
    Microsoft.Win32.RegistryKey key = 
        Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    key.SetValue("My App Name", Application.ExecutablePath.ToString());
    check_connectivity();
}

0 个答案:

没有答案