【问题标题】:C# Wait for user input to continue with functionC#等待用户输入以继续功能
【发布时间】:2017-01-12 11:54:45
【问题描述】:

我有一个需要用户输入来执行 A 或 B 的函数。

if(userinput == "Confirm"){A} else {B}

我的问题:我是否必须使用对话框,或者我可以为此使用带有消息和两个按钮的面板?

我所拥有的:带有文本框(消息)和两个按钮(确认、取消)的面板

如果是,我该如何做到这一点? 如果不是,我什至如何使用对话框? (只是指出一个链接)

(如果到目前为止你还没有明白我的意思,请继续阅读)

1) 用户填写表格

2) 如果该字段在数据库中不是唯一的,则只需验证它与它兼容

3) 但是,如果该字段是唯一的或主键,它会在数据库中搜索与其相关的信息

4) 获得该信息后,它会检查为该英特尔构建的任何其他字段是否已填充或为空

5) 如果该表单中包含用户插入的任何内容,系统必须询问它是否使用刚刚获得的信息更新表单,或者它是否只填写空字段,并保留那些没有空。

6) 函数继续验证

【问题讨论】:

    标签: c# function dialog panel


    【解决方案1】:

    您可以使用表单和管理DialogResult 值。为此,您必须制作一个希望用户输入的新表单。然后这样管理:

    YourForm form = new YourForm();
    
    if(form.ShowDialog() == DialogResult.OK)
    {
        MessageBox.Show("This is the input" + form.textBox1.Text)
    }
    

    更多帮助在这里:https://msdn.microsoft.com/es-es/library/c7ykbedk(v=vs.110).aspx

    【讨论】:

    • 嗯...我可以等待按钮单击吗?就像...功能停止,直到用户单击这两个按钮之一
    • 是的。将按钮的 DialogResult 属性设置为所需的值
    • 我的问题是......我没有不同的表单......我在函数运行的实际表单上有一个为此目的的面板......
    • 出于某种原因,如果我使用您的代码,将“form”替换为“this”,它什么也不做。我已经在两个按钮上设置了对话框结果
    • 如果您使用它,您将引用您的实际表单,而不是您将尝试打开的表单
    【解决方案2】:

    假设您的新表单中有 2 个按钮:

    Button okButton = new Button();
    Button cancelButton = new Button();
    

    为他们分配点击事件:

    okButton.Click += OnClick;
    cancelButton.Click += OnClick;
    

    然后在您的 OnClick() 方法中:

    void OnClick(object sender, EventArgs e)
    {
        if(sender == okButton)
            this.DialogResult = DialogResult.Ok;
    
        this.Close();
    }
    

    现在你可以像这样使用它:

    if(new MeForm().ShowDialog() == DialogResult.OK)
    {
        // user clicked OK
    }
    else
    {
        // user clicked cancel
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2021-12-08
      • 2020-01-15
      相关资源
      最近更新 更多