2017-09-03 102 views
1

我有一個WinForm,裏面有TableLayoutPanel和ComboBoxes。組合框的尺寸擴大了。並且始終在啓動應用程序之後,左側組合框具有如下這樣的僞像: combobox artifactsWinForm ComboBox繪製Bug

但是隻要我將鼠標放在它們上面就會消失。我已經嘗試了不同的選擇,唯一有幫助的是爲所有組合框設置一個固定的大小,但這對我並不好。

這就是大小的樣子:

sizes

怎麼看起來像我的形式的典型方案:

schema

  • 紅色方塊 - TableLayoutPanel中的內容;
  • 綠色正方形 - 沒有內容的TableLayoutPanel,邊距爲0,單邊框。

也許有人有如何解決這個錯誤的想法?謝謝。

+0

它在視覺樣式呈現一個小故障,具體到您的Windows版本。你必須提到它,我想從Win7的渲染者的風格和錯誤頻率來看。屬於一類錯誤,ComboBox在創建後[不喜歡調整大小](https://stackoverflow.com/questions/2151447/odd-combobox-behavior-on-resize/2151679#2151679)。修補其可見性可能是一種可行的方法。試圖繞過它並不是最好的主意,你必須確保在稍後的版本中解決方法仍然可以正常工作。 –

回答

1

所以它確實是一個錯誤,但我找到了一個簡單的解決方案。 只需訂閱事件處理程序中的Parrent Control/Form的SizeChanged事件並調用Refresh()方法。控件將重新繪製爲所需的大小。

enter image description here

+0

您的組合框停靠在TLP列內嗎?我想我有類似的問題 – pitersmx

+0

@pitersmx是的。我的解決方案並沒有幫助你? –