C# 组合框下拉列表位于窗口屏幕下方。

C# 组合框下拉列表位于窗口屏幕下方。,c#,.net,winforms,C#,.net,Winforms,我使用的是DatagridView,其中有大约16行,每行中都有一个组合框。当我试图从最下面一行的组合框中下拉时,问题就出现了,这一行中大约有20-30个项目。下拉列表中的滚动条消失,下拉列表位于windows屏幕区域下方。任何可能的解决方案,使下拉菜单打开顶部。 Framework 2.0。我无法复制该问题。我试着移动这个窗口,打开各种组合框。如果它不适合下拉,它会自动下拉,因此完全在屏幕上 using System; using System.Linq; using System.Windo

我使用的是DatagridView,其中有大约16行,每行中都有一个组合框。当我试图从最下面一行的组合框中下拉时,问题就出现了,这一行中大约有20-30个项目。下拉列表中的滚动条消失,下拉列表位于windows屏幕区域下方。任何可能的解决方案,使下拉菜单打开顶部。
Framework 2.0。

我无法复制该问题。我试着移动这个窗口,打开各种组合框。如果它不适合下拉,它会自动下拉,因此完全在屏幕上

using System;
using System.Linq;
using System.Windows.Forms;

class MainForm : Form
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm());
    }

    public MainForm()
    {
        string[] comboSource = Enumerable.Range(1, 30).Select(i => String.Format("Item #{0}", i)).ToArray();

        Controls.Add(new DataGridView
        {
            AutoGenerateColumns = false,
            Columns = { new DataGridViewComboBoxColumn { HeaderText = "Item", DataSource = comboSource }, },
            DataSource = comboSource, // just adding dummy items for effect
            Dock = DockStyle.Fill,
        });
    }
}

你能给出一个类似的简单例子来重复这个问题吗?

Winform、WPF、Asp.Net或Silverlight?我只在Windows XP上遇到这个问题,在Windows 7上,它工作正常,代码没有任何变化。当我们第一次单击组合框下拉列表时,下拉列表有超过16个项目,滚动条会弹出,但是如果我们再次单击,滚动条就会消失,控件就在可见屏幕区域下方,几乎无法选择所需的项目。你知道为什么会发生这种情况吗?我猜XP上的组合框控件被破坏了?我以前从未遇到过这种情况。在就地组合框可见并移动之前,您可以自己执行边界检查。