背景
隨著公司接的業(yè)務(wù)復(fù)雜度提高,軟件界面設(shè)計(jì)需求也相應(yīng)提升,老板不再滿(mǎn)足于單面板的各種跳轉(zhuǎn),所以明白了吧,不提升自己就等于自愿失業(yè)或轉(zhuǎn)行!?。?/p>
方案
本來(lái)想著自學(xué)自寫(xiě)一套控件庫(kù)來(lái)實(shí)現(xiàn),但是時(shí)間有點(diǎn)緊,只能先做完項(xiàng)目偷偷抽時(shí)間寫(xiě),現(xiàn)在主要使用現(xiàn)成的大佬寫(xiě)好的控件。由于需求還算簡(jiǎn)單,只是六七個(gè)頁(yè)面揉合到一個(gè)主窗體,所有采用目前大多博客推薦的DockPanel
1、新建一個(gè).Net Framework 4.7.2 窗體應(yīng)用項(xiàng)目,我這里使用默認(rèn)命名
2、右鍵單擊引用,選擇NuGet,下載安裝 WeiFenLuo.WinFormsUI.Docking這個(gè)控件庫(kù)
成功安裝后你可以在工具箱找到DockPanel這個(gè)第三方控件
?
3、拖一個(gè)DockPanel進(jìn)Form1中,并將其Dock改為Fill
?
?
4、新建另一個(gè)窗體類(lèi)命名為Form2?
?
5、打開(kāi)Form2代碼,讓其改為繼承WeifenLuo.WinFormsUI.Docking.DockContent
6、打開(kāi)Form1代碼,修改代碼如下,實(shí)現(xiàn)給dockpanel添加5個(gè)其他窗口
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//最大化主窗口
WindowState = FormWindowState.Maximized;
IsMdiContainer = true;
//添加窗體加載事件處理函數(shù)
Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
Form2 fLeft = new Form2();
fLeft.Text = "left";
fLeft.Show(dockPanel1);
fLeft.DockTo(dockPanel1, DockStyle.Left);
Form2 fRight = new Form2();
fRight.Text = "right";
fRight.Show(dockPanel1);
fRight.DockTo(dockPanel1, DockStyle.Right);
Form2 fTop = new Form2();
fTop.Text = "up";
fTop.Show(dockPanel1);
fTop.DockTo(dockPanel1, DockStyle.Top);
Form2 fBottom = new Form2();
fBottom.Text = "bottom";
fBottom.Show(dockPanel1);
fBottom.DockTo(dockPanel1, DockStyle.Bottom);
Form2 fFill = new Form2();
fFill.Text = "fill";
fFill.Show(dockPanel1);
fFill.DockTo(dockPanel1, DockStyle.Fill);
}
}
}
?7、運(yùn)行程序
拖拽窗體fill,可以停靠到其他區(qū)域,這些都是DockPanel這個(gè)庫(kù)內(nèi)部實(shí)現(xiàn)的,無(wú)需我們自己關(guān)心?
?
8、注意事項(xiàng)
DockPanel庫(kù)使用有幾個(gè)需要注意的地方
【1】項(xiàng)目記得選擇.net framework框架
【2】主窗體必須設(shè)置IsMdiContainer=true,表示啟用多文檔容器
【3】DockPanel的子窗體必須繼承?WeifenLuo.WinFormsUI.Docking.DockContent ,這樣你在對(duì)其進(jìn)行拖拉拽的時(shí)候才會(huì)響應(yīng)???、移動(dòng)、拉伸功能文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-496872.html
結(jié)語(yǔ)
先茍住,再找時(shí)間充實(shí)、強(qiáng)化自身文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-496872.html
到了這里,關(guān)于Winform模擬Visual Studio工具欄拖拉拽、??康奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!