バックグラウンド
会社のビジネスの複雑さが増すにつれ、それに応じてソフトウェア インターフェイス デザインの需要も増加します。上司は、単一のパネル上でさまざまなジャンプを行うだけでは満足できなくなりました。理解してください。自分自身を向上させなければ、自主的に失業するか、キャリアを変えましょう!!!
プラン
本当は自分でコントロールライブラリ一式を書きたかったのですが、ちょっと時間が厳しかったので、プロジェクトを先に終わらせてこっそり時間をかけて書いたので、今は主に大手の方が書いた既成のコントロールを使っています。要件が比較的単純であるため、6 ~ 7 ページのみが 1 つのメイン フォームに結合され、現在ほとんどのブログで推奨されている DockPanel がすべて使用されます。
1. 新しい .Net Framework 4.7.2 フォーム アプリケーション プロジェクトを作成します。ここではデフォルトの名前を使用します。
2. 参照を右クリックし、NuGet を選択し、WeiFenLuo.WinFormsUI.Docking コントロール ライブラリをダウンロードしてインストールします。
インストールが成功すると、ツールボックスにサードパーティ コントロールの DockPanel が表示されます。
3. DockPanel を Form1 にドラッグし、その Dock を Fill に変更します。
4. Form2 という名前の別のフォーム クラスを作成します。
5. Form2 コードを開き、WeifenLuo.WinFormsUI.Docking.DockContent を継承させます。
6. Form1 コードを開き、コードを次のように変更して、他の 5 つのウィンドウをドックパネルに追加します。
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;
//添加窗体加载事件处理函数
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. プログラムを実行する
フォームの塗りつぶしをドラッグ アンド ドロップして他の領域にドッキングします。これらはすべて DockPanel ライブラリによって内部的に実装されており、私たち自身でそれを気にする必要はありません。
8. 注意事項
DockPanel ライブラリを使用する場合は、いくつかの注意点があります。
[1] プロジェクトの .net フレームワークを忘れずに選択してください
[2] メイン フォームでは、複数のドキュメント コンテナが有効であることを示す IsMdiContainer=true を設定する必要があります。
【3】DockPanel のサブフォームは WeifenLuo.WinFormsUI.Docking.DockContent を継承し、ドラッグ アンド ドロップ時にドッキング、移動、伸縮機能が反応するようにする必要があります。
エピローグ
まずは我慢して、時間を見つけて自分を豊かにし、強化しましょう