【问题标题】:clear the fields on a win form on click event [closed]在点击事件中清除获胜表单上的字段[关闭]
【发布时间】:2014-02-23 21:19:24
【问题描述】:

大家好。我正在使用 Visual Studio C# 进行一个项目,这是我的 win 表单的图像,现在我正在做的是在此表单的字段中输入值并将其保存到我的数据库中,但在重新加载此表单后所有以前的值在那儿。我想要的是,当我单击此表单中的“保存”按钮时,它必须将所有值保存在我的数据库中,然后清除文本字段 + 单选按钮等中的所有先前值。 请帮助我这个过程的代码是什么,我应该在哪里写这个代码?

【问题讨论】:

  • 我不知道为什么它们仍然存在,因为您没有提供程序代码,但请看一下:stackoverflow.com/questions/4811229/…stackoverflow.com/questions/7025590/…
  • 重置控件属性不应该让任何程序员陷入困境。如果您不想编写代码,则只需创建表单类的新实例并显示它,然后处理旧的。
  • 汉斯·帕桑特。你能在同一件事上指导我更多吗?我只是一个初学者

标签: c#


【解决方案1】:
private void btnSaveCick(object sender,EventArgs e)
{
  //save your data here



  //after saving your data call the CLearControls() function
  ClearControls(this);
}

void ClearControls(Control control)
{
  foreach (Control c in control.Controls)
  {
    if (c is TextBox)
      ((TextBox)c).Clear();
    else if (c is RadioButton)
      ((RadioButton)c).Checked = false;
    else if (c is ComboBox)
      ((ComboBox)c).SelectedIndex = -1;

    if(c.HasChildren)
      ClearControls(c);
  }
}

【讨论】:

  • 我没有投反对票,但这只会清除 TextBox 对象,使 RadioButtons 和 ComboBox 变脏。
  • @etaiso:感谢编辑了我的代码。
  • 当我点击保存按钮时,我只是想重置此表单上的所有 me 字段,就像它们在上图中一样。
  • @Taz:您可以创建单独的函数ClearControls(),并在保存表单数据后调用此函数,检查我编辑的答案。
  • 对于RadioButton,我只需将第一项Checked 属性设置为true。这会将其他设置为 false。如果您的 RadioButtons 驻留在容器中,这也将起作用(您的代码中的循环将错过这种情况)。
猜你喜欢
  • 1970-01-01
  • 2018-03-22
  • 2014-06-21
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多