2023-01-19 21:58:46 +08:00

131 lines
4.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using System.Net.NetworkInformation;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Desktop.Others;
using Milimoe.FunGame.Desktop.UI;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Api.Factory;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Library.Component;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace Milimoe.FunGame.Desktop.Utility
{
public class OpenForm
{
public static void SingleForm(FormType type, OpenFormType opentype = OpenFormType.General)
{
string formtype = "";
switch(type)
{
case FormType.Register:
formtype = FormSet.Register;
break;
case FormType.Login:
formtype = FormSet.Login;
break;
case FormType.Inventory:
formtype = FormSet.Inventory;
break;
case FormType.RoomSetting:
formtype = FormSet.RoomSetting;
break;
case FormType.Store:
formtype = FormSet.Store;
break;
case FormType.UserCenter:
formtype = FormSet.UserCenter;
break;
case FormType.Main:
formtype = FormSet.Main;
break;
default:
break;
}
if (!Singleton.IsExist(formtype))
{
NewSingleForm(type, opentype);
}
else
{
OpenSingleForm(formtype, opentype);
}
}
private static void NewSingleForm(FormType type, OpenFormType opentype)
{
System.Windows.Forms.Form form = new();
switch (type)
{
case FormType.Register:
form = new Register();
break;
case FormType.Login:
form = new Login();
break;
case FormType.Inventory:
break;
case FormType.RoomSetting:
break;
case FormType.Store:
break;
case FormType.UserCenter:
break;
case FormType.Main:
form = new Main();
break;
default:
break;
}
if (Singleton.Add(form))
{
if (opentype == OpenFormType.Dialog) form.ShowDialog();
else form.Show();
}
else throw new Exception("无法打开指定窗口。");
}
private static void OpenSingleForm(string key, OpenFormType opentype)
{
System.Windows.Forms.Form form = new();
object? obj = Singleton.Get(key);
if (obj != null)
{
switch (key)
{
case FormSet.Register:
form = (Register)obj;
break;
case FormSet.Login:
form = (Login)obj;
break;
case FormSet.Inventory:
break;
case FormSet.RoomSetting:
break;
case FormSet.Store:
break;
case FormSet.UserCenter:
break;
case FormSet.Main:
form = (Main)obj;
break;
default:
break;
}
if (opentype == OpenFormType.Dialog) form.ShowDialog();
else form.Show();
}
else throw new Exception("无法打开指定窗口。");
}
}
}