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

时间:2015-11-27 17:21:02

标签: 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);
    }

如何让它停止显示MessageBox并直接加载表格如果用户过去已经允许它(因为它在你允许它之后不再要求允许它)

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

1 个答案:

答案 0 :(得分:2)

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

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

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

    现在,您可以通过这种方式显示MessageForm

    if(!Properties.Settings.Default.DontShow)
        new MessageForm().ShowDialog();
    

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

    enter image description here