2010-04-04 134 views
2

我想使用ListView閃爍使用自定義控件「少」控制在這裏找到http://geekswithblogs.net/CPound/archive/2006/02/27/70834.aspx直接在Visual Studio項目

直接在我的C#項目。 我不想做一個自定義用戶控制項目,將其構建到dll,然後將其導入到我的項目中。我只想在我製作的c#Programm中使用這一切。

我想我必須在我的項目中添加一個類並添加代碼,但是如何直接在我的項目中使用該控件?

+1

「直接使用它」是什麼意思?它不是出現在設計師的某個地方或類似的東西嗎? – 2010-04-04 09:31:57

回答

2

在Visual Studio中,右鍵單擊您的項目,然後單擊ADD | USER CONTROL。將新控件命名爲ListViewNF,然後單擊ADD

查看新班級的代碼。改變這一行:

public partial class ListViewNF : UserControl 

這樣:

public partial class ListViewNF : ListView 

和重建。你會得到一個編譯錯誤約AutoScaleMode - 只是刪除線InitializeComponent這是造成錯誤:到目前爲止

// delete this line: 
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 

,你的代碼看起來就像這樣:

public partial class ListViewNF : ListView 
{ 
    public ListViewNF() 
    { 
     InitializeComponent(); 
    } 
} 

改變它這樣的:

public partial class ListViewNF : ListView 
{ 
    public ListViewNF() 
    { 
     InitializeComponent(); 

     //Activate double buffering 
     this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
      ControlStyles.AllPaintingInWmPaint, true); 

     //Enable the OnNotifyMessage event so we get a chance to filter out 
     // Windows messages before they get to the form's WndProc 
     this.SetStyle(ControlStyles.EnableNotifyMessage, true); 
    } 

    protected override void OnNotifyMessage(Message m) 
    { 
     //Filter out the WM_ERASEBKGND message 
     if (m.Msg != 0x14) 
     { 
      base.OnNotifyMessage(m); 
     } 
    } 

} 

重建項目,你現在應該看到在你的控件工具箱ListViewNF上左(右頂部)。您可以將此控件拖放到設計器中的表單上,就像常規的ListView一樣。

+0

嗨.. 謝謝.. 這正是我正在尋找.. (我不知道控制將列在列表的頂部,它在那裏,但我沒有看到它!!!!!!!) 無論如何你要感謝所有.. 我也試過把它直接添加到代碼中,並創建實例,它的工作原理012oo 謝謝全部 – PEEK 2010-04-04 09:53:14

+0

在Visual Studio 2010.首先:對於32程序集。它不是自動的。我必須做「選擇項目...」,如下所述。第二:它不適用於64位程序集(https://support.microsoft.com/en-us/kb/963017) – 2015-04-24 12:48:57

0

在Visual Studio項目中打開一個工具箱。然後點擊「選擇項目」。點擊瀏覽,然後選擇一個包含控件的程序集。現在,您可以在設計器中使用控件。希望這是你所問的。

+0

請參加這個: 我不想做一個自定義的用戶控制項目,建立它到dll,然後將其導入到我的項目中..我只想在我的C#Programm iam製作所有這一切.. – 2010-04-04 09:36:48

+0

如果此控件未分發作爲一個單獨的程序集,比你必須以某種方式構建它。你不必爲此做一個單獨的項目,只是使用現有項目中的代碼,我真的沒有看到問題... – n535 2010-04-04 09:39:29