2012-04-18 17 views
2

私は、各行にコンボボックスを持つ16の行を持っているDatagridViewを使用しています。私がコンボボックスを一番下の行にドロップしようとすると、問題が発生します。コンボボックスには、約20〜30個の項目があります。ドロップダウンのスクロールバーが消え、ドロップダウンがウィンドウの画面領域の下に表示されます。ドロップダウンが上に開くので、それに対する任意の解決策。 Framework 2.0。コンボボックスのドロップダウンリストがウィンドウ画面の下に表示されます。

+4

WinformまたはWPFまたはAsp.NetまたはSilverlight? – OmegaMan

答えて

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

問題を再現する同様の簡単な例を作成できますか?

+0

私はWindows XPでのみ、この問題に直面しています。Windows 7では、コードを変更することなく完全に正しく動作します。ドロップダウンリストには16個以上の項目があるため、最初にコンボボックスのドロップダウンをクリックするとスクロールバーがポップアップしますが、再度クリックするとスクロールバーが消え、コントロールが表示される画面領域の下に移動して、それがどうして起こるのか? – zreecu

+0

私はXPのコンボボックスコントロールが壊れていると思いますか?私は自分の前でこれに遭遇していない。インプレースコンボボックスを表示して移動する直前に、境界チェックを自分で実行することは可能です。 – Tergiver

関連する問題