WinFormTools/WinformDevFramework/BaseForm1.cs

283 lines
8.4 KiB
C#

using Sunny.UI;
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;
using Autofac;
using WinformDevFramework.Core.Configuration;
using WinformDevFramework.Core.Winform;
using WinformDevFramework.IServices.System;
using WinformDevFramework.Services.System;
namespace WinformDevFramework
{
public partial class BaseForm1 : Form
{
protected FormStatus formStatus = FormStatus.First;
public BaseForm1()
{
InitializeComponent();
}
public virtual void Init()
{
tabControl1.Selecting += TabControl1_Selecting;
//设置list不可以编辑
this.dataGridViewList.ReadOnly = true;
//设置列宽自适应
dataGridViewList.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridViewList.AutoResizeColumns();
//dataGridViewList.DoubleBuffered();
//设置gridlist 双击事件
this.dataGridViewList.CellDoubleClick += DataGridViewList_CellDoubleClick;
}
private void TabControl1_Selecting(object? sender, TabControlCancelEventArgs e)
{
TabControlSelectingFunction(sender, e);
}
/// <summary>
/// tab页签禁止切换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void TabControlSelectingFunction(object? sender, TabControlCancelEventArgs e)
{
if (formStatus == FormStatus.Edit || formStatus == FormStatus.Add)
{
e.Cancel = true;
}
}
private void DataGridViewList_CellDoubleClick(object? sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewListDoubleClick(sender, e);
}
}
/// <summary>
/// datagridview双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void DataGridViewListDoubleClick(object? sender, DataGridViewCellEventArgs e)
{
//跳转到详情页
this.tabControl1.SelectedIndex = 1;
//设置功能按钮状态
formStatus = FormStatus.View;
}
private void Button_Click(object? sender, EventArgs e)
{
}
private void BaseForm1_Load(object sender, EventArgs e)
{
Init();
}
/// <summary>
/// 设置控件状态
/// </summary>
/// <param name="groupBox"></param>
protected void SetControlStatus(Control groupBox, bool canEdit)
{
foreach (Control control in groupBox.Controls)
{
if (control is TextBox)
{
TextBox textBox = (TextBox)control;
textBox.ReadOnly = !canEdit;
}else if (control is UITreeView||control is TreeView)
{
}
else if (control.Controls.Count == 0)
{
control.Enabled = canEdit;
}
SetControlStatus(control, canEdit);
}
}
/// <summary>
/// 清楚控件值
/// </summary>
/// <param name="groupBox"></param>
protected void ClearControlsText(Control groupBox)
{
foreach (Control control in groupBox.Controls)
{
if (control is DateTimePicker)
{
control.Text = string.Empty;
}
else if (control is Label || control is Button || control is CheckBox||control is GroupBox)
{
}
////else if (control is TextBox && (control.Name.Equals("")|| control.Name.Equals("")))
////{
////}
else
{
control.Text = string.Empty;
}
ClearControlsText(control);
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
AddFunction( sender, e);
}
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void AddFunction(object sender, EventArgs e)
{
//跳转到详情页
this.tabControl1.SelectedIndex = 1;
//设置功能按钮状态
formStatus = FormStatus.Add;
}
private void btnEdit_Click(object sender, EventArgs e)
{
EditFunction(sender, e);
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void EditFunction(object sender, EventArgs e)
{
formStatus = FormStatus.Edit;
}
private void btnSave_Click(object sender, EventArgs e)
{
SaveFunction(sender, e);
}
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void SaveFunction(object sender, EventArgs e)
{
formStatus = FormStatus.Save;
}
private void btnCanel_Click(object sender, EventArgs e)
{
CanelFunction(sender, e);
}
/// <summary>
/// 撤销
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void CanelFunction(object sender, EventArgs e)
{
formStatus = FormStatus.Canel;
}
private void btnDel_Click(object sender, EventArgs e)
{
DelFunction(sender, e);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void DelFunction(object sender, EventArgs e)
{
formStatus = FormStatus.Del;
}
private void btnResetPW_Click(object sender, EventArgs e)
{
ResetPWFunction(sender, e);
}
/// <summary>
/// 重置密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void ResetPWFunction(object sender, EventArgs e)
{
}
private void btnClose_Click(object sender, EventArgs e)
{
CloseFunction(sender, e);
}
/// <summary>
/// 关闭
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public virtual void CloseFunction(object sender, EventArgs e)
{
TabControl parentTabControl = this.Parent.Parent as TabControl;
TabPage tabpage = this.Parent as TabPage;
parentTabControl.TabPages.Remove(tabpage);
}
/// <summary>
/// 设置工具栏按钮是否隐藏
/// </summary>
protected void SetToolsButton()
{
//设置工具按钮
var buttons = AppInfo.UserMenus.Where(p =>
p.ParentID == int.Parse(this.Tag.ToString()) && p.MenuType == "Button").Select(p => p.MenuCode);
foreach (Control control in this.flowLayoutPanelTools.Controls)
{
if (!buttons.Contains(control.Name))
{
control.Hide();
}
}
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if (tabControl1.SelectedIndex==0)
{
formStatus = FormStatus.First;
SetToolButtonStatus(formStatus);
}
else
{
if (!string.IsNullOrEmpty(txtID.Text))
{
formStatus = FormStatus.View;
SetToolButtonStatus(formStatus);
}
}
}
/// <summary>
/// 设置工具按钮是否可用
/// </summary>
public virtual void SetToolButtonStatus(FormStatus status)
{
}
}
}