我是C#的新手,我使用的是Windows窗体。
我刚刚完成了EPOS应用程序的开发。该应用程序大约有50 forms
和100 user controls
,每个form
和user control
包含许多控件(button
,textboxes
,{{1} } ..)许多控件都有图标。
应用程序从/向SQL服务器读取和写入数据。当我第一次运行应用程序时,每个100 panels
连接到SQL服务器以加载数据。所有100 user control
在其构造函数中都有SQL查询,如下所示:
user controls
应用程序还使用了许多事件(大约100个事件订阅),应用程序在完成使用它们时总是关闭SQL服务器连接。
应用程序和SQL服务器驻留在计算机桌面(4GB RAM,Win 7)中。在使用应用程序时,我显示/关闭 SqlConnection MyConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
SqlCommand MyCommand = new SqlCommand();
DataTable DataTable = new DataTable();
SqlDataAdapter Sql_Data_Adapter = new SqlDataAdapter();
public UserControl1()
{
InitializeComponent();
try
{
DataTable.Rows.Clear();
DataTable.Columns.Clear();
MyConnection.Open();
MyCommand.CommandText = "SELECT * FROM PizzaTable";
MyCommand.Connection = MyConnection;
Sql_Data_Adapter.SelectCommand = MyCommand;
Sql_Data_Adapter.Fill(DataTable);
//Do something with the DataTable (Ex: fill Datagridview)
MyCommand.Parameters.Clear();
Sql_Data_Adapter.Dispose();
MyConnection.Close();
}
catch (System.Exception excep)
{
MessageBox.Show(excep.Message);
}
}
,显示/隐藏forms
,打开/关闭SQL连接并打印收据。
- 问题:
我安装了应用程序(来自user controls
文件)后,当我运行它时,它可以正常工作,没有错误,但在我显示表单后使用应用程序一段时间后(如屏幕截图所示)然后单击该表单上的按钮,该按钮变为红色并且表单冻结,我必须重新启动应用程序才能再次使用它。无论是否有图标都没有,这个红十字会发生控制。
我的问题是:这种红十字线和冻结形成的原因是什么?以及如何防止这种情况发生?