Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C-窗体组合框捕捉关闭_C#_.net_Combobox - Fatal编程技术网

C# C-窗体组合框捕捉关闭

C# C-窗体组合框捕捉关闭,c#,.net,combobox,C#,.net,Combobox,我在visualstudio和C中构建了一个winform。直到最近,组合框的行为还和预期的一样。但是,在添加功能时,我移动了所有表单元素,现在两个组合框在可以选择选项之前会自动关闭,尽管您可以使用滚轮或箭头键选择项目。下拉事件中的代码没有更改。我不知所措——有人遇到过这样的事情吗 以下是下拉事件的代码:- void comboBoxTargetServer_DropDown(object sender, System.EventArgs e) { comboBo

我在visualstudio和C中构建了一个winform。直到最近,组合框的行为还和预期的一样。但是,在添加功能时,我移动了所有表单元素,现在两个组合框在可以选择选项之前会自动关闭,尽管您可以使用滚轮或箭头键选择项目。下拉事件中的代码没有更改。我不知所措——有人遇到过这样的事情吗

以下是下拉事件的代码:-

    void comboBoxTargetServer_DropDown(object sender, System.EventArgs e)
    {
        comboBoxTargetServer.Items.Clear();
        comboBoxTargetDatabase.Items.Clear();
        comboBoxTargetDatabase.Items.Add("");
        comboBoxTargetDatabase.Enabled = false;
        //ActiveForm.Cursor = Cursors.WaitCursor;

        List<string> sqlServers = SQLUtilities.ListSQLServers();
        sqlServers.Sort();
        foreach (string sqlServer in sqlServers)
        {
            comboBoxTargetServer.Items.Add(sqlServer);
        }

        //ActiveForm.Cursor = Cursors.Arrow;
        comboBoxTargetDatabase.Enabled = true;            
    }

谢谢

一旦组合框下拉,您将清除所有项目。这将清空它,因此下拉列表中没有任何内容,因此列表将消失。您应该选择一个不同的事件来填充它。事实上,在应用程序的一次运行中,数据是静态的吗?如果是这样,请在表单加载时填充组合框,并保持不变。

组合框将在foreach循环中重新填充。这不是问题所在-组合框在填充后会立即关闭。我在屏幕上短暂地看到它,仍然可以使用鼠标滚轮或光标键选择项目。在我移动表单上的元素之前,组合框的行为与您预期的一样,但我没有更改任何代码。嗯。。你说得对,清楚不是问题。我自己刚刚在一个应用程序中尝试过。表单中还有哪些功能?那么,您添加到表单中的其他功能/功能是什么。。也许您应该自下而上工作,即从您添加的最后一个内容开始,直到您可以将其缩小到不符合预期的函数/方法为止,因为您移动了一些表单元素。。在没有看到任何代码的情况下检查控件的TabIndex。很难确定您正在执行的是OnLeave还是OnExit类型的事件。。当你将控件留在表单上时,我会首先检查这些事件。我已经将代码回滚到,然后才开始处理它,但它仍然会出现错误!我将尝试重新启动.net或服务器,看看是否可以修复它。