0

如何在 WinForms 应用程序中刷新整个用户输入的数据?当我单击一个按钮时,我想清除我的所有控件,即用户在单击按钮时在 Windows 窗体应用程序中输入的数据。

private void button4_Click(object sender, EventArgs e)
        {
            const string message = "Are you sure you want to clear data";
            const string caption = "Please Conform";
            var result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
            {
                dataGridView1.Rows.Clear();
                dataGridView1.Rows.Add(5);
                RowNumberSettings();
                //Refresh();
            }
        }

这是我的代码它只清除 Datagridview ...

4

4 回答 4

1

取决于你有什么数据。

制作刷新功能并在该功能内绑定控件中的所有数据。

在按钮单击事件上,只需调用刷新函数。

 void myButton_Click(object sender, RoutedEventArgs e)
    {
        Refresh()
    }
于 2013-09-13T06:50:43.510 回答
0

我建议对您的表单使用 MVVM 模式。这是一些指南

MVVM 为您提供了视图(您的表单)和数据(显示的内容)的清晰分离。您可以轻松更新任何部分,而无需对其他部分进行重大更改。您可以在后端代码中操作任何值,而无需知道它们是如何显示的。

在使用 MVVM 的情况下,您将能够重新创建底层视图模型对象,并且所有 GUI 控件将为空或具有其默认值(取决于您如何实现视图模型)。

于 2013-09-13T06:50:19.297 回答
0

循环遍历Controls集合(递归)并处理每个控件。

示例(在 VB 中):

Sub ResetControls(container as Container)
  For Each control As Control In container.Controls
    '  TODO:  Check the control type and reset its value
    '
    '  TODO:  If the control is a container, call ResetControls(control)
  Next
End Sub
于 2013-09-13T06:50:42.007 回答
0

有很多方法可以做到,但我喜欢这样做:

private void ClearTextBoxes()
{
     Action<Control.ControlCollection> func = null;

     func = (controls) =>
     {
         foreach (Control control in controls)
             if (control is TextBox)
                 (control as TextBox).Clear();
             else
                 func(control.Controls);
     };

     func(Controls);
 }

希望能帮助到你!

于 2013-09-13T06:54:56.493 回答