3

Windowsフォームでクライアントアプリケーションを作成しました。 Windows Server 2008 R2を開発用に使用しました。DataGridViewComboBoxColumnはWindows 7以降のOSで動作が異なります

しかし、私のマシンでは再現できないバグがクライアントから報告されていますが、Windows 7または10で同じソリューションを展開すると、結果が異なります。

は、今のところ私は今、二つの問題:

  1. DataGridViewComboBoxColumn backcolourは灰色であることが判明しました。
  2. タブまたはカーソルキーを使用して列を移動するとき、コンボボックスの列はスキップされます。 これは最大の問題です。

最小限のコードでテストアプリケーションを作成しましたが、この問題はテストアプリケーションでも引き続き発生することがわかりました。ここで

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn(); 
{ 
    column.HeaderText = "CB"; 
    column.Name = "CB"; 
    column.DefaultCellStyle.BackColor = Color.White; 
    //column.CellTemplate = new DataGridViewCheckBoxCell(); 
    column.DataSource = list; 
    column.ValueType = typeof(string); 

} 

dataGridView1.Columns.Add(column); 

dataGridView1.DataSource = dtEmp; 

が問題のスクリーンショットです:

のWindows 10 - カーソルキーを移動するにもかかわらず、最初の列がdfirst列が強調表示されていること
enter image description here
のWindows 2008-お知らせを強調表示されていないことに注意してくださいとセルはグレー表示されません。
enter image description here

ご協力いただければ幸いです。

答えて

0

DisplayStyleプロパティをNothingのenum値に変更すると、列のスタイルとフォーカスが表示されるようになる可能性があります。しかし、コンボボックスの矢印は明らかに消えますが、それはあなたにとって問題ではないかもしれません。

this.Column1.DisplayStyle = System.Windows.Forms.DataGridViewComboBoxDisplayStyle.Nothing; 

Result

それとも、コンボボックスの矢印を参照するようにFlatFlatStyleプロパティを変更しよう:

this.Column1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 

Flat

+0

ありがとうございました。これは魅力のように働いた this.Column1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; – Shaan

関連する問題