我目前正在研究一些ListBox自定義,以改善我的應用程序的清晰度。基本上,爲了達到這個目的,很容易找到「如何」,從而導致我目前的結果如下。
Current display http://www.freeimagehosting.net/uploads/2967c2c763.png
我很高興與顯示器,但...我面臨着鼠標滾輪奇怪的行爲。我試圖找到在這個問題上的信息,我發現這篇文章:
http://aviationxchange.net/wikis/winforms/net-color-listbox.aspx
其中指出,鼠標滾輪的問題是不是唯一的一個(從鏈接簡單的複製/粘貼)
- 水平滾動條消失。 只有固定長度的字符串比控制寬度小 纔可以顯示 。如果控制 調整大小?
- 如果你想使用鼠標滾輪 ,你可能已經注意到, 所選項目向上和向下移動 不穩定時,滾輪是 移動。
- 可覆蓋的方法 OnPaint()OnPaintBackGround()不要 工作。只是他們不是 迷上了事件。背景是僅通過Windows消息繪製的 。
它提供了一些建議來糾正這些問題,但我覺得很沮喪實施所有這些「解決方法」來顯示自定義列表。我想念什麼?有沒有任何winform控件允許我進行相同類型的自定義,但採用更清晰/更優雅的方式?我無法找到更多信息:/
下面,添加了自定義繪圖部分的相關部分,但我不確定顯示問題是否真的基於overriden方法的實現,更多關於控制本身。
public RecordListBox(): base()
{
mListBox = this;
mListBox.DrawItem += new DrawItemEventHandler(mListBox_DrawItem);
mListBox.MeasureItem += new MeasureItemEventHandler(mListBox_MeasureItem);
this.DrawMode = DrawMode.OwnerDrawFixed;
}
public void mListBox_DrawItem(object sender, DrawItemEventArgs e)
{
if (this.DesignMode) return;
e.DrawBackground();
e.DrawFocusRectangle();
// drawing actions
}
public void mListBox_MeasureItem(object sender, MeasureItemEventArgs e)
{
e.ItemHeight = 40;
}
問候,
爲了拿出任何形式的解決方案,我認爲我們首先需要看到您的自定義實現的源代碼,看看有什麼可以引起奇怪的行爲,你的問題是類似「我做了這個代碼,繼承人的錯誤,現在最新的錯誤呢?「除非我們能看到代碼,否則這沒有幫助。 – caesay 2010-02-18 23:59:41