c# 如何在按钮点击时显示值框
问题的原因:
问题的原因是需要在按钮点击时显示一个值框(value box),即在点击按钮后弹出一个窗口显示某个值。
解决方法:
1. 使用TaskDialog API,它类似于MessageBox,但可以添加组件。可以参考这个示例。
2. 创建自己的窗体,这样可以有更多的可能性和更少的代码。在自己的窗体中添加一个公共属性,然后使用ShowDialog函数调用窗体,并在结束时获取该值。
using(FormDialog fr= new FormDialog()) { if(fr.ShowDialog()==System.Windows.Forms.DialogResult.OK) { //获取属性值 } }
3. 在自己的窗体(FormDialog)中,应该使用`this.DialogResult=System.Windows.Forms.DialogResult.OK;`而不是使用this.Close()或this.Dispose()。
4. 可以使用事件来管理是否使用Enter键进行验证,例如:
private void FormDialog_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode==Keys.Enter) { //设置属性值 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的公共变量中。因为您的主窗体订阅了Closing事件,所以它会触发一个事件处理程序,并从中获取数据。
以下是处理关闭事件的代码示例:
public void ClosedHandler(....) { MyForm f = sender as MyForm; if(f != null) { Person p = new Person() { FirstName = f.FirstName; LastName = f.LastName; }; } }
通过这种方法,当点击按钮时,将会显示一个值框,并且可以从该值框中获取输入的数据。