为什么控件与C#中的红线交叉?

时间:2016-08-22 11:17:02

标签: c# winforms

我是C#的新手,我使用的是Windows窗体。

我刚刚完成了EPOS应用程序的开发。该应用程序大约有50 forms和100 user controls,每个formuser control包含许多控件(buttontextboxes,{{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文件)后,当我运行它时,它可以正常工作,没有错误,但在我显示表单后使用应用程序一段时间后(如屏幕截图所示)然后单击该表单上的按钮,该按钮变为红色并且表单冻结,我必须重新启动应用程序才能再次使用它。无论是否有图标都没有,这个红十字会发生控制。

Screenshot

我的问题是:这种红十字线和冻结形成的原因是什么?以及如何防止这种情况发生?

0 个答案:

没有答案