创建一个消息框,用户可以选择“不再显示”。

RDR*_*RDR 3 c# winforms

将一个群发信使和一个多消息/垃圾邮件发送者合二为一,效果很好,只是想让它变得更好。显然,我必须编写代码才能让 Skype 允许该程序,以便它可以做它所做的事情,这里是,

    private void Form1_Load(object sender, EventArgs e)
    {
        //I entered a message box so it doesn't crash instantly.
        MessageBox.Show("Please allow SkypeBot.vshost.exe to access skype. (Look at your Skype application)");
        Skype skype = new Skype();
        skype.Attach();
        getContacts(skype);
    }
Run Code Online (Sandbox Code Playgroud)

如果用户过去已经允许它,我怎样才能让它停止显示 MessageBox 并直接加载表单(因为它在您允许一次后不再要求允许它)

这是它的样子,如果有人想知道,出于某种原因; http://imgur.com/f0aaiZN,工作正常,只是想改进它,以便对上述请求的任何回答表示赞赏:D

Rez*_*aei 5

您可以通过在对话框中添加一个复选框来阻止显示消息,以便用户可以选择“不再显示此消息”。然后您可以将复选框的值保存在设置中,并根据该设置决定显示或不显示对话框。

作为一个简单的解决方案,您可以创建自己的自定义消息框:

  1. 创建一个新的Form并将其命名MessageForm为您的自定义消息框,并根据需要放置诸如“确定”按钮和其他按钮之类的按钮。并为每个按钮设置适当的DialogResult属性值。因此,当您使用ShowDialogif 单击按钮显示表单时,无需编写代码,表单将关闭并显示该对话框结果。
  2. 将 bool设置添加到您的项目Settings文件中,例如将其命名为DontShow.
  3. 在表单上放置一个复选框并将其文本设置为“不再显示此消息”,然后处理CheckedChanged事件并将复选框的值保存在DontShow设置中:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    Properties.Settings.Default.DontShow = this.checkBox1.Checked;
    Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)

现在你可以用MessageForm这种方式展示你的:

if(!Properties.Settings.Default.DontShow)
    new MessageForm().ShowDialog();
Run Code Online (Sandbox Code Playgroud)

您可以MessageForm通过在构造函数中接受消息来增强您的功能,甚至可以public static void ShowMessage(string)向它添加一个以像消息框一样使用它。

在此处输入图片说明