按F5异常并在F5上忽略

时间:2012-06-02 07:14:03

标签: c#

我收到此未处理的异常错误:请参阅屏幕截图。

enter image description here

仅当我使用 Ctrl + F5 而不是 F5 (调试模式)运行时,才会出现此错误。不确定这是否有用,我的电脑是Windows 7-64位并运行32位版本

根据这个讨论:How can I get WinForms to stop silently ignoring unhandled exceptions?,添加Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException)它会导致Windows忽略该错误。

修改 frmPlant_Load事件

public partial class frmPlant : Form
    {
        DatabaseConnection _DbConnection = new DatabaseConnection();
        string conString = ConfigurationManager.ConnectionStrings["RVESTConnString"].ConnectionString;
        SQLQueries _SQlQueries = new SQLQueries();
        DataSet ds;
        SQLiteDataAdapter da;
       static DataTable gdt;
        int gSelectedPlant;
        string gSelectedPlantName = "";
        bool ignoreSelChg = false;
        bool DataDirty = false;
    public frmPlant()
        {
            InitializeComponent();        
        }
        public frmPlant(int sSelectedPlant)
        {
            InitializeComponent();           
        }
        private void frmPlant_Load(object sender, EventArgs e)
        {

            ds = FillData();
            gdt = ds.Tables[0];
            bindingSource1.DataSource = gdt;
            dataGridView1.DataSource = bindingSource1;
            gSelectedPlant = StaticClass.GlobalValue;
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.Columns["PlantId"].Visible = false;
            dataGridView1.Columns["NSSS_Design"].Width = 70;          
        }
        private DataSet FillData()
        {
            ignoreSelChg = true;
            SQLiteConnection con = new SQLiteConnection(conString);
            DataSet dPlant;
            try
            {
                con.Open();
                SQLiteCommand cmd = new SQLiteCommand("select * from Plant", con);
                da = new SQLiteDataAdapter("select * from Plant", con);
                dPlant = new DataSet();
                da.Fill(dPlant, "plant"); 

            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
            }
            return dPlant;
        }

我还应该添加另一个问题:当我说在对话框中继续这里时,它工作正常,但运行后台进程。我必须在任务管理器中手动去杀死它

问题:假设我在Program.cs中添加了这一行,是否会忽略任何需要修复的真正错误?

更多代码: 在第二个屏幕 - 初始设置屏幕上单击按钮时会弹出此对话框。第一个是启动画面。初始设置将我带到工厂表单

这是初始设置屏幕的代码

     public partial class frmInitialSetUp : Form
    {
        public frmInitialSetUp()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            Program.fPlant = new frmPlant();
            Program.fPlant.Show();
            this.Hide();
        }

        private void frmInitialSetUp_Load(object sender, EventArgs e)
        {
            Program.LoadAllForms();   
        }
    }
}
Program.cs
      static public void LoadAllForms()
        {
            try
            {
                Program.fInitialSetUp = new frmInitialSetUp();
                Program.fPlant = new frmPlant();
                Program.frm*** = new frm***();
                Program.frm*** = new frm***();
                Program.frm*** = new frm***();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

在按钮上单击

1 个答案:

答案 0 :(得分:1)

在try {} catch(unhandledexception ex){}中包含frmload并在调试模式下运行它 这次调试器抓住了它。这是datagridview列的一个小问题