2010-04-04 111 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