第一个问题是在form1
顶部我有:
ListViewNF lvnf;
ListViewNF
是form1
中的一个类:
class ListViewNF : System.Windows.Forms.ListView
{
public ListViewNF()
{
//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(System.Windows.Forms.Message m)
{
if (m.Msg != 0x14)
{
base.OnNotifyMessage(m);
}
}
}
然后在form1构造函数中,我为lvnf
变量设置实例,设置大小,位置并将此控件lvnf
添加到form1
控件。
然后在我的程序中,我在某些地方使用lvnf
。
但是现在我想要新UserControl
调用它lvnf
,所以当我将UserControl
从工具箱拖到form1
设计器时,它将替换lvnf
1}}我创造了。
第一个问题是我删除该行后:
ListViewNF lvnf;
我收到了很多错误,但由于lvnf
不存在而无法看到form1设计师我收到错误。
如果我不删除它并拖动新的UserControl
,则会为新控件添加另一个名称,我希望它为lvnf
。我不想在与lvnf
相关的运行时代码中更改任何与设计器中的控件相关的内容。
这是UserControl
:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pop3_Emails
{
public partial class ListViewNF : UserControl
{
public ListViewNF()
{
InitializeComponent();
}
}
}
我应该将lvnf
的所有事件都移到UserControl
代码吗?或者将它们全部留在form1
?
主要问题是如何将UserControl
用作lvnf
。
另外,我需要使用类ListViewNF
中的代码。
lvnf
设计器中将ListViewNF
form1
设为控件,而不是运行时代码中的控件。
答案 0 :(得分:1)
UserControl
拖到表单上,名称不同(例如x
)lvnf
重命名为x
,要求Visual Studio更新所有引用。忽略名称已存在的警告,项目不会编译。ListViewNF x
声明(现在项目应该再次编译)。x
重命名为lvnf
,同时更新所有引用。