C# 组合框下拉列表位于窗口屏幕下方。
我使用的是DatagridView,其中有大约16行,每行中都有一个组合框。当我试图从最下面一行的组合框中下拉时,问题就出现了,这一行中大约有20-30个项目。下拉列表中的滚动条消失,下拉列表位于windows屏幕区域下方。任何可能的解决方案,使下拉菜单打开顶部。C# 组合框下拉列表位于窗口屏幕下方。,c#,.net,winforms,C#,.net,Winforms,我使用的是DatagridView,其中有大约16行,每行中都有一个组合框。当我试图从最下面一行的组合框中下拉时,问题就出现了,这一行中大约有20-30个项目。下拉列表中的滚动条消失,下拉列表位于windows屏幕区域下方。任何可能的解决方案,使下拉菜单打开顶部。 Framework 2.0。我无法复制该问题。我试着移动这个窗口,打开各种组合框。如果它不适合下拉,它会自动下拉,因此完全在屏幕上 using System; using System.Linq; using System.Windo
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上的组合框控件被破坏了?我以前从未遇到过这种情况。在就地组合框可见并移动之前,您可以自己执行边界检查。