none
comboBoxのアイテムがdataGridViewのセルに残ってしまう RRS feed

  • 質問

  • こんばんは、zen73です。以前に皆さんから親切に教えていただいて作ることのできたアプリを手直ししているところですが、表題のような現象が出てしまって解決できないでいます。

                              

    comboBox                  dataGridView

    |         |▽|                                            

    |aaaaa    |                   | 月 | 日 |                  

    |bbbbb    |                   |  4 |   3 |        

    |ccccc    |                   |  4 |   5 |ccccc

     

    実際には、comboBox と dataGridView は左端で重なっています。

    dataGridViewのデータをcomboBoxのアイテムcccccで抽出して表示したとき、

    下のようになってしまいます。

                       | 月 | 日 |                  

                       |bbb|  5 |ccccc                

     

    このデータを印刷してみますと

                       | 月 | 日 |                  

                       |  4 |  5 |ccccc    

    と、正しく印刷されますから、データの変更はなく単に表示のエラーと思われるのですが・・・。    

     

    どうぞよろしくお願いします。                        

    2008年12月9日 9:39

回答

  • う~ん、DataGridViewのクライアント領域の無効化とDataGridViewの新しいデータでの再表示との微妙なタイミングかな?

    とりあえずComboBoxのDropDownClosedイベントで、DataGridViewのRefreshメソッドを実行するとどうなりますでしょうか?

    2008年12月9日 14:47
    モデレータ

すべての返信

  • comboboxはdataGridViewのセルの中にあるのでしょうか? それとも、comboboxとdatagridviewは別々のコントロールとして存在しているのでしょうか? 

     

    実際には、comboBox と dataGridView は左端で重なっています。

     

    この表現がよくわかりませんでした。comboboxをdataGridViewのEditingControlとして使っておられて、それが残ったままになっているのか、それともcomboboxとdatagridviewを動的にフォーム上に配置されていて、その配置がおかしいのかと想像してみましたが、どちらも違っていそうですね・・・

    2008年12月9日 9:56
    モデレータ
  • trapemiyaさん、いつもありがとうございます。

     trapemiya さんからの引用
    comboboxはdataGridViewのセルの中にあるのでしょうか? それとも、comboboxとdatagridviewは別々のコントロールとして存在しているのでしょうか?

      別々のコントロールとして存在しています。

    [quote user="trapemiya]

    実際には、comboBox と dataGridView は左端で重なっています。

    この表現がよくわかりませんでした。

    ここに書いて説明するとなると、ちょっと難しいのですが

    [comboBox]

                                                                                           

    |                                                                                      |

    |      dataGridView                                                             |

    |                                                                                      |

    |                                                                                      |

    二つのコントロールは、上のような位置関係になっています。

    dataGridViewには、次のようにデータが表示されています。                                     

                                                      | 月  | 日 | 大科目 | 小科目 | 摘 要                    

                                                      |      |     |            |            |

                                            |  4  |  3  | 総務部 | 用紙費 |

                                            |      |      |           |            |                             

                                            |      |      |           |            |

                                            |  4  |   5 | 予備費 | 香典  |

                                            |      |      |           |            |                             

                         ここで、comboBoxのアイテムを表示すると下のようになります。

                                                   青の地色の部分の黒文字は実際には見えません

                         赤文字がアイテムです

                         縦幅は説明の都合で拡げています

                                                                       

                                                      |   大科目    |▽|

                                                      |総務部             |                                            

                                                      |環境部 | 大科目 | 小科目 | 摘 要                    

                                                      |福祉部 |            |            |

                                            |  4  |  3  | 総務部 | 用紙費 |

                                            |文化部 |            |            |                             

                                            |体育部 |            |            |

                                            |  4  |   5 | 予備費 | 香典  |

                                            |体育部 |            |            |                             

                                            |婦人部              |

                                            |積立金             |

                                            |予備費              |

             ここで、「予備費」を選択するとなぜか下のように表示されてしまうのです。

                      | 月  | 日 | 大科目 | 小科目 | 摘 要                    

                                       |福祉|      |           |            |

                                  |      |   5 | 予備費 | 香典  |

                                  |文化|      |           |            |                             

                   

                     4月の4が見えなくなり、セルの範囲のアイテムが切り取られた

                     形になって残ってしまいます。

                         

 

 

 

 

 

 

 

comboboxをdataGridViewのEditingControlとして使っておられて、それが残ったままになっているのか、それともcomboboxとdatagridviewを動的にフォーム上に配置されていて、その配置がおかしいのかと想像してみましたが、どちらも違っていそうですね・・・

2008年12月9日 12:18
  • う~ん、DataGridViewのクライアント領域の無効化とDataGridViewの新しいデータでの再表示との微妙なタイミングかな?

    とりあえずComboBoxのDropDownClosedイベントで、DataGridViewのRefreshメソッドを実行するとどうなりますでしょうか?

    2008年12月9日 14:47
    モデレータ
  •  trapemiya さんからの引用

    とりあえずComboBoxのDropDownClosedイベントで、DataGridViewのRefreshメソッドを実行するとどうなりますでしょうか?

     

    ありがとうございました。上記のようにして実行すると正しく表示できるようになりました。

     

    2008年12月10日 1:33