该如何操作才能在这个窗体下建立多个代码文件,从而方便功能的管理。
8 个解决方案
#1
从道理上说,你完全可以把功能归进不同的类,而不是全堆积在form里。如果你已经别无选择,那么一样可以使用partial class Form1,把代码分散在不同的文件里
#2
可以将方法写类文件中,需要那个方法,调用类文件就可以了
#3
我经常用的方法是:form文件下只写一些处理控件的代码,而你想实现的一些功能,比如计算一个值,下载上传一个文件、压缩、解压等,这些方法可以写到一个单独的类中,然后在form下面调用即可。
有些时候,我一个form可能要调用十几个类文件
有些时候,我一个form可能要调用十几个类文件
#4
使用 partial 关键字 同一个类 你就可以创建多个文件了
#5
partial 就好,如果你想把他们配成一组得修改一下项目文件,不过有插件可以简单玩vsCommands插件,有个groupItems功能,可以把你这散写的分布类,在vs里组合起来,方便管理(效果就类似,winform的设计文件和代码文件是两个,但显示成一组)
#6
vsCommands插件还是有几个比较实用的功能,通常我的vs上是要安装了
我经常用的几个功能
1.打开的窗口的文件定位,解决方案文件比较多的时候,有时候想定位文件在那里不方便(比如转到定义后,你想看这文件在哪里就比较麻烦),这插件有"location in solutiong"直接定位到文件位置
2.groupItems,把几个文件组合显示成一组,比如你的要求。写分部类可以,不过建议显示成一组,免得不好管理
3.文件移动警告,鼠标误操作,经常会把文件无意移动到其他文件夹,vs自己是不警告的,而这个插件会警告你,让你确认是否移动
我经常用的几个功能
1.打开的窗口的文件定位,解决方案文件比较多的时候,有时候想定位文件在那里不方便(比如转到定义后,你想看这文件在哪里就比较麻烦),这插件有"location in solutiong"直接定位到文件位置
2.groupItems,把几个文件组合显示成一组,比如你的要求。写分部类可以,不过建议显示成一组,免得不好管理
3.文件移动警告,鼠标误操作,经常会把文件无意移动到其他文件夹,vs自己是不警告的,而这个插件会警告你,让你确认是否移动
#7
最终还是使用的比较笨的办法,所有的文件使用用一个namespace和class。这样在工程资源管理器中,这个文件不能直接打开了,只能右击查看代码的方式打开。VS为啥不改进一下这里呢,这明明是个很常用的东西啊。
#8
gf = new GroupForm();
of = new OrderForm();
guif = new GuideForm();
stf = new SettingForm();
gf.TopLevel = false;
gf.Location = new Point(0, 0);
gf.Show();
panel2.Controls.Add(gf);
of.TopLevel = false;
of.Location = new Point(2000, 0);
of.Show();
panel2.Controls.Add(of);
guif.TopLevel = false;
guif.Location = new Point(2000, 0);
guif.Show();
panel2.Controls.Add(guif);
stf.TopLevel = false;
stf.Location = new Point(2000, 0);
stf.Show();
panel2.Controls.Add(stf);
void CheckForm(int index)
{
CleanStyle();
NowSelectIndex = index;
foreach (Control i in panel2.Controls)
{
if (index == 0 && i == gf)
{
gf.Location = new Point(0, 0);
label1.Image = Properties.Resources.wechat_chat2;
label1.BackColor = Color.FromArgb(229, 229, 229);
}
else if (index == 1 && i == of)
{
of.Location = new Point(0, 0);
label4.Image = Properties.Resources.wechat_integral2;
label4.BackColor = Color.FromArgb(229, 229, 229);
OrderForm.CheckType();
}
else if (index == 2 && i == guif)
{
guif.Location = new Point(0, 0);
label5.Image = Properties.Resources.wechat_shop2;
label5.BackColor = Color.FromArgb(229, 229, 229);
GuideForm.CheckType();
}
else if (index == 3 && i == stf)
{
stf.Location = new Point(0, 0);
label6.Image = Properties.Resources.wechat_set2;
label6.BackColor = Color.FromArgb(229, 229, 229);
}
else
i.Location = new Point(2000, 0);
}
}
你值得拥有
#1
从道理上说,你完全可以把功能归进不同的类,而不是全堆积在form里。如果你已经别无选择,那么一样可以使用partial class Form1,把代码分散在不同的文件里
#2
可以将方法写类文件中,需要那个方法,调用类文件就可以了
#3
我经常用的方法是:form文件下只写一些处理控件的代码,而你想实现的一些功能,比如计算一个值,下载上传一个文件、压缩、解压等,这些方法可以写到一个单独的类中,然后在form下面调用即可。
有些时候,我一个form可能要调用十几个类文件
有些时候,我一个form可能要调用十几个类文件
#4
使用 partial 关键字 同一个类 你就可以创建多个文件了
#5
partial 就好,如果你想把他们配成一组得修改一下项目文件,不过有插件可以简单玩vsCommands插件,有个groupItems功能,可以把你这散写的分布类,在vs里组合起来,方便管理(效果就类似,winform的设计文件和代码文件是两个,但显示成一组)
#6
vsCommands插件还是有几个比较实用的功能,通常我的vs上是要安装了
我经常用的几个功能
1.打开的窗口的文件定位,解决方案文件比较多的时候,有时候想定位文件在那里不方便(比如转到定义后,你想看这文件在哪里就比较麻烦),这插件有"location in solutiong"直接定位到文件位置
2.groupItems,把几个文件组合显示成一组,比如你的要求。写分部类可以,不过建议显示成一组,免得不好管理
3.文件移动警告,鼠标误操作,经常会把文件无意移动到其他文件夹,vs自己是不警告的,而这个插件会警告你,让你确认是否移动
我经常用的几个功能
1.打开的窗口的文件定位,解决方案文件比较多的时候,有时候想定位文件在那里不方便(比如转到定义后,你想看这文件在哪里就比较麻烦),这插件有"location in solutiong"直接定位到文件位置
2.groupItems,把几个文件组合显示成一组,比如你的要求。写分部类可以,不过建议显示成一组,免得不好管理
3.文件移动警告,鼠标误操作,经常会把文件无意移动到其他文件夹,vs自己是不警告的,而这个插件会警告你,让你确认是否移动
#7
最终还是使用的比较笨的办法,所有的文件使用用一个namespace和class。这样在工程资源管理器中,这个文件不能直接打开了,只能右击查看代码的方式打开。VS为啥不改进一下这里呢,这明明是个很常用的东西啊。
#8
gf = new GroupForm();
of = new OrderForm();
guif = new GuideForm();
stf = new SettingForm();
gf.TopLevel = false;
gf.Location = new Point(0, 0);
gf.Show();
panel2.Controls.Add(gf);
of.TopLevel = false;
of.Location = new Point(2000, 0);
of.Show();
panel2.Controls.Add(of);
guif.TopLevel = false;
guif.Location = new Point(2000, 0);
guif.Show();
panel2.Controls.Add(guif);
stf.TopLevel = false;
stf.Location = new Point(2000, 0);
stf.Show();
panel2.Controls.Add(stf);
void CheckForm(int index)
{
CleanStyle();
NowSelectIndex = index;
foreach (Control i in panel2.Controls)
{
if (index == 0 && i == gf)
{
gf.Location = new Point(0, 0);
label1.Image = Properties.Resources.wechat_chat2;
label1.BackColor = Color.FromArgb(229, 229, 229);
}
else if (index == 1 && i == of)
{
of.Location = new Point(0, 0);
label4.Image = Properties.Resources.wechat_integral2;
label4.BackColor = Color.FromArgb(229, 229, 229);
OrderForm.CheckType();
}
else if (index == 2 && i == guif)
{
guif.Location = new Point(0, 0);
label5.Image = Properties.Resources.wechat_shop2;
label5.BackColor = Color.FromArgb(229, 229, 229);
GuideForm.CheckType();
}
else if (index == 3 && i == stf)
{
stf.Location = new Point(0, 0);
label6.Image = Properties.Resources.wechat_set2;
label6.BackColor = Color.FromArgb(229, 229, 229);
}
else
i.Location = new Point(2000, 0);
}
}
你值得拥有