使用.show()后,Win Form消失

Sea*_*yth 3 c# grid devexpress winforms

我有一个网格,我想在新窗口中弹出.我正在使用的代码如下.该表一直填充正确的数据.唯一的问题是,当新的winform弹出时,它会立即消失.此外,它不会在网格中显示数据.我无法弄清楚我做错了什么.有任何想法吗?

private void gridView1_ShowGridMenu(object sender, DevExpress.XtraGrid.Views.Grid.GridMenuEventArgs e)
    {
        GridView view = sender as GridView;
        GridHitInfo hitInfo = view.CalcHitInfo(e.Point);
        if (hitInfo.InRow)
        {
            var rowData = gridView1.GetRowCellValue(hitInfo.RowHandle, "SP");
            string[] rowDataSplit = rowData.ToString().Split(':');
            using (frmInterfaceLogSelection form = new frmInterfaceLogSelection(Services))
            {
                var sql = rowDataSplit[1].ToString();

                var ds = Services.RunSql(sql);
                var table = ds.FirstTable();

                if (table == null)
                {
                    var error = Services.LastSqlResultError;
                    if (error.Length > 0)
                    {
                        MessageBox.Show(error);
                    }
                    return;
                }

                table.AcceptChanges();

                this.gridControl1.DataSource = table;
                this.gridView1.Columns.BestFitAll();

                form.Show();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Cod*_*man 9

这是因为你正在处理这个表格.

using声明之后处理该表格form.Show(),因此它消失了.

您可能需要处理SQL连接/服务连接,而不是表单.

  • +但是表格将由GC处理,因为它是本地的,因此使用模式实际上是正确的.OP可能需要ShowDialog而不是下面@ sa_ddam213所提到的(现在) (2认同)