【问题标题】:Combobox dropdown list is going below the window screen.组合框下拉列表位于窗口屏幕下方。
【发布时间】:2012-04-18 23:38:54
【问题描述】:

我正在使用 DatagridView,其中有大约 16 行,每行都有一个组合框。当我尝试在其中包含大约 20-30 个项目的最底部行中下拉组合框时,就会出现问题。下拉列表中的滚动条消失,下拉列表位于窗口屏幕区域下方。任何可能的解决方案,以便下拉菜单打开到顶部。 框架 2.0。

【问题讨论】:

  • Winform 或 WPF 或 Asp.Net 或 Silverlight?

标签: c# .net winforms


【解决方案1】:

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

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,
        });
    }
}

你能举出一个同样简单的例子来重复这个问题吗?

【讨论】:

  • 我只在 Windows XP 上遇到这个问题,在 Windows 7 上它工作得很好,没有任何代码更改。由于下拉列表有超过 16 个项目,当我们第一次单击组合框下拉菜单时,滚动条会弹出,但是如果我们再次单击,滚动条就会消失,并且控件会出现在可见屏幕区域下方,因此几乎不可能选择所需的项目.知道为什么会这样吗?
  • 我猜 XP 上的组合框控件坏了?我之前没有遇到过这种情况。可以在就地 ComboBox 可见并移动它之前自己执行边界检查。
猜你喜欢
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2014-09-13
  • 1970-01-01
相关资源
最近更新 更多