c# 如何在单击按钮时显示值框

c# how to show value box on a button click

我想知道是否 possible/how 你显示了一个弹出框,你可以在其中输入一个值并在 c# 表单应用程序中使用它 (visual studio)。某处可能已经有关于此的指南,但我无法找到,因为我很可能不知道用于它的正确术语。

基本上我需要一个框来显示您输入数字的位置并在其他地方使用该数字。

"""

事件:: 单击按钮 --> 打开一个弹出框 --> 输入值 --> 输入 --> 在其他地方使用值。

"""" 不确定这是否可行,或者您必须使用新的表单页面。

感谢您的回答。

嗯,有一个API叫TaskDialog,它看起来像Message Box但是你可以给它添加组件,Example

但是如果你创建自己的表单会更好,因为你将有更多的可能性和更少的代码编写, 如果您创建自己的表单,您可以添加一个 public 属性 然后您使用 ShowDialog 函数调用您的表单并在最后获取值。

using(FormDialog fr= new FormDialog())
{
    if(fr.ShowDialog()==System.Windows.Forms.DialogResult.OK)
    {
    //get your property
    }
}

在您的表单 (FromDialog) 上您应该使用 this.DialogResult=System.Windows.Forms.DialogResult.OK; 而不是 this.close() 或 dispose(); 那么您可以使用事件来管理是否要使用 enter 进行验证,很可能:

private void FormDialog_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.Enter)
            {
                //set your property
                this.DialogResult=System.Windows.Forms.DialogResult.OK;
            }
        }

您创建了一个继承自 Form 的表单 (MyForm),并在输入时公开了您需要的数据(FirstName、LastName)。当你点击你的按钮时,表格就会出现。

public void eventClick(....)
{
    MyForm f = new MyForm();
    f.Closed + = ClosedHandler;
    f.Show();
}

在 MyForm 中输入数据并将数据填充为 MyForm 的 public 变量。因为您的主窗体订阅了 Closing 事件,它将触发一个事件处理程序并从中获取数据。

public void ClosedHandler(....)
{
    MyForm f = sender as MyForm
    if(f!=null)
    {
        Person p = new Person()
        {
            FirstName = f.FirstName;
            LastName = f.LastName;
        };
    }

}