2017-01-11 8 views
0

.NET Framework 4.5に基づいて、1年前にWinformアプリケーションを開発しました。Winformの表示のバグ

コントロールグループが表示されない奇妙なバグを経験しているユーザーが少数です。私はそれを修正するためにバグを再現することに決して譲らなかった。 まれにしか発生しません。 〜200人のユーザーのうち、現在この問題が発生しているのは1人だけです。ここで

はどのようにすべきである:ここでは notice the "Selected customer" UI control

は、それが問題であるかである: The gridview overflows and only the checkbox "Show hidden customers" is visible

誰かがどんな提案がありますか?

EDIT:最初のスクリーンショットでは、「選択した顧客」グループコントロールが表示されます。ユーザーがグリッドビューの行をクリックすると、関連する顧客がそこに表示され、[この顧客を選択]ボタンをクリックできます。

2番目のスクリーンショットでは、グリッドビューが下端までオーバーフローしていることがわかります。 「選択された顧客」の部分は表示されません。これは、GridViewのロード方法です

(ただし、チェックボックス「隠し顧客は」まだ表示されます):

private void SetUpCustomersGridView() 
    { 
     if (chkbx_showHiddenCustomers.Checked) 
     { 
      dgv_customer.DataSource = _mySqlCeEngine.GetAllCustomers(); 
     } 
     else 
     { 
      dgv_customer.DataSource = _mySqlCeEngine.GetVisibleCustomers(); 
     } 

     gv_customer.Columns[0].Caption = "ID"; 
     gv_customer.Columns[1].Caption = "Name"; 
     gv_customer.Columns[2].Caption = "Address"; 
     gv_customer.Columns[3].Caption = "City"; 
     gv_customer.Columns[4].Caption = "Zip Code"; 
     gv_customer.Columns[5].Caption = "Country Code"; 
     gv_customer.Columns[6].Caption = "Cluster"; 
     gv_customer.Columns[7].Caption = "Magellan Party/Account/Site ID/Account Site ID"; 
     gv_customer.BestFitColumns(); 

     gv_customer.OptionsFilter.AllowFilterEditor = false; 
     gv_customer.OptionsView.ShowAutoFilterRow = true; 
     foreach (DevExpress.XtraGrid.Columns.GridColumn col in gv_customer.Columns) 
     { 
      col.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains; 
     } 
    } 

をそして、これは、行がクリックされた下部を表示するコードです:

private void gv_customer_RowClick(object sender, RowClickEventArgs e) 
    { 
     try 
     { 
      DataRowView selectedRow = GetCustomersGridSelectedRow(); 
      if (selectedRow != null){ btn_selectCustomer.Enabled = true; } 
      lbl_valueCustomerID.Text = GetCustomerID(selectedRow); 
      lbl_valueCustomerName.Text = GetCustomerName(selectedRow); 
      lbl_valueCustomerAddress.Text = GetCustomerAddress(selectedRow); 
      lbl_valueCustomerCity.Text = GetCustomerCity(selectedRow); 
      lbl_valueCustomerZipCode.Text = GetCustomerZipCode(selectedRow); 
      lbl_valueCustomerCountry.Text = GetCustomerCountryCode(selectedRow); 
     } 
     catch{} 
    } 

EDIT2:USER-から新しいインフォメーション>セーフモードでアプリを実行している場合、すべてが正常..です

おかげで、

Hellcat8

+1

問題点は何ですか?スクリーンショットからはわかりません。 –

+0

私はその部分を忘れて申し訳ありません。私は私の記事を編集しました、ありがとう。 – Hellcat8

+1

ソースコードを見ている人だけが修正を提案することができます。 – LarsTech

答えて

0

私には競合状態のようです。不足しているコントロールの表示は、データグリッドに読み込まれるデータによって異なりますか?その場合、ロードされていないデータは、後続の制御のロードに失敗する可能性があります。

フォームを読み込むコードを投稿できますか?

DataGridの読み込みが完了したら、async/awaitを使用して依存形式のロジックのみを実行できます。

+0

部品が欠落しているかどうかは、何も表示されないことによって決まります。それはパネル上の表で、ラベルが付いています。しかし、ユーザーが上記のグリッドビュー内の行をクリックすると、グリッドビューからのデータが以下の不可視ラベル(デフォルト状態)に移入されます。 – Hellcat8

関連する問題