using Casic.Birmm.RbFreqStandMeasure.info; using Casic.Birmm.RbFreqStandMeasure.Properties; using Casic.Birmm.RbFreqStandMeasure.setting; using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Casic.Birmm.RbFreqStandMeasure { public partial class RbFreqStdMeas : Form { #region 无边框拖动效果/最小化窗口/关闭窗口 [DllImport("user32.dll")]//拖动无窗体的控件 public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; private void RbFreqStdMeas_MouseDown(object sender, MouseEventArgs e) { //拖动窗体 ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } private void btnExitSys_Click(object sender, EventArgs e) { Application.Exit(); } private void btnMinSys_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void btnExitSys_MouseHover(object sender, EventArgs e) { ToolTip p = new ToolTip(); p.ShowAlways = true; p.SetToolTip(this.btnExitSys, "退出"); } private void btnMinSys_MouseHover(object sender, EventArgs e) { ToolTip p = new ToolTip(); p.ShowAlways = true; p.SetToolTip(this.btnMinSys, "最小化"); } #endregion private bool[] menuSelected = { true, false, false, false, false, false, false }; // 按钮图标 private PictureBox[] menuPics; // 按钮图标的资源名称(选中的资源名称在后面加上 _selected) private string[] menuIconResources; // 按钮文本 private Label[] menuLabels; // 按钮下划线 private Label[] menuUnderlines; private void ClearAllMenuSelected() { // 找到当前选中的按钮 int index = 0; for (int i = 0; i < this.menuSelected.Length; i++) { if (this.menuSelected[i] == true) { index = i; break; } } // 将当前按钮的效果设置为默认未选中 this.menuPics[index].BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject(this.menuIconResources[index], null); this.menuLabels[index].ForeColor = ColorTranslator.FromHtml("#333333"); this.menuUnderlines[index].BackColor = Color.Transparent; } #region 首页按钮点击、鼠标移入/移出效果 private void HoverHome() { panHome.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveHome() { panHome.Back = Color.Transparent; } private void SelectHome() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveHome(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { true, false, false, false, false, false, false }; // 将新选中的按钮设置为选中 this.picIconHome.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_home_selected", null); this.labHomeText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labHomeSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 切换至首页 switchMainPanel(0); } #endregion #region 基准状态按钮点击、移入/移出效果 private void HoverStatus() { panStatus.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveStatus() { panStatus.Back = Color.Transparent; } private void SelectStatus() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveStatus(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, true, false, false, false, false, false }; // 将新选中的按钮设置为选中 this.picIconStatus.BackgroundImage = (Bitmap) Resources.ResourceManager.GetObject("icon_status_selected", null); this.labStatusText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labStatusSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 切换到基准状态页面 switchMainPanel(1); } #endregion #region 送检仪器按钮点击、移入/移出效果 private void HoverDev() { panDev.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveDev() { panDev.Back = Color.Transparent; } private void SelectDev() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveDev(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, false, true, false, false ,false ,false }; // 将新选中的按钮设置为选中 this.picIconDev.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_dev_selected", null); this.labDevText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labDevSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 切换至待检仪器管理 switchMainPanel(2); } #endregion #region 频率计数器测量点击、移入/移出效果 private void HoverCounter() { panCounter.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveCounter() { panCounter.Back = Color.Transparent; } private void SelectCounter() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveCounter(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, false, false, true, false, false, false }; // 将新选中的按钮设置为选中 this.picIconCounter.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_counter_selected", null); this.labCounterText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labCounterSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); } #endregion #region 计量管理点击、移入/移出效果 private void HoverMeasure() { panMeasure.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveMeasure() { panMeasure.Back = Color.Transparent; } private void SelectMeasure() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveMeasure(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, false, false, false, true, false, false }; // 将新选中的按钮设置为选中 this.picIconMeasure.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_measure_selected", null); this.labMeasureText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labMeasureSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 切换至计量信息管理 switchMainPanel(4); } #endregion #region 数据管理点击、移入/移出效果 private void HoverData() { panData.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveData() { panData.Back = Color.Transparent; } private void SelectData() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveData(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, false, false, false, false, true, false }; // 将新选中的按钮设置为选中 this.picIconData.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_data_selected", null); this.labDataText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labDataSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 弹出对话框进行数据备份与还原操作 DataBackupDlg dataDlg = new DataBackupDlg(); dataDlg.ShowDialog(); } #endregion #region 系统管理点击、移入/移出效果 private void HoverSetting() { panSetting.Back = ColorTranslator.FromHtml("#56a3f2"); } private void LeaveSetting() { panSetting.Back = Color.Transparent; } private void SelectSetting() { // 移除所有按钮的选中样式 this.ClearAllMenuSelected(); // 鼠标移入效果去掉 LeaveSetting(); // 重新设置所有按钮的状态 this.menuSelected = new bool[] { false, false, false, false, false, false, true }; // 将新选中的按钮设置为选中 this.picIconSetting.BackgroundImage = (Bitmap)Resources.ResourceManager.GetObject("icon_setting_selected", null); this.labSettingText.ForeColor = ColorTranslator.FromHtml("#3f84d7"); this.labSettingSelected.BackColor = ColorTranslator.FromHtml("#3f84d7"); // 切换到设置的界面 switchMainPanel(6); } #endregion public RbFreqStdMeas() { InitializeComponent(); } private void RbFreqStdMeas_Load(object sender, EventArgs e) { this.menuPics = new PictureBox[] { this.picIconHome, this.picIconStatus, this.picIconDev, this.picIconCounter, this.picIconMeasure, this.picIconData, this.picIconSetting }; this.menuLabels = new Label[] { this.labHomeText, this.labStatusText, this.labDevText, this.labCounterText, this.labMeasureText, this.labDataText, this.labSettingText }; this.menuUnderlines = new Label[] { this.labHomeSelected, this.labStatusSelected, this.labDevSelected, this.labCounterSelected, this.labMeasureSelected, this.labDataSelected, this.labSettingSelected }; this.menuIconResources = new string[] { "icon_home", "icon_status", "icon_dev", "icon_counter", "icon_measure", "icon_data", "icon_setting" }; // 加载首页的内容 switchMainPanel(0); } private void panHome_Click(object sender, EventArgs e) { if (this.menuSelected[0] == false) { this.SelectHome(); } } private void panHome_MouseHover(object sender, EventArgs e) { // 没有选中首页时才动作 if (this.menuSelected[0] == false) { HoverHome(); } } private void panHome_MouseLeave(object sender, EventArgs e) { // 没有选中首页时才动作 if (this.menuSelected[0] == false) { LeaveHome(); } } private void panStatus_Click(object sender, EventArgs e) { if (this.menuSelected[1] == false) { SelectStatus(); } } private void panStatus_MouseHover(object sender, EventArgs e) { if (this.menuSelected[1] == false) { HoverStatus(); } } private void panStatus_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[1] == false) { LeaveStatus(); } } private void panDev_Click(object sender, EventArgs e) { if (this.menuSelected[2] == false) { SelectDev(); } } private void panDev_MouseHover(object sender, EventArgs e) { if (this.menuSelected[2] == false) { HoverDev(); } } private void panDev_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[2] == false) { LeaveDev(); } } private void panCounter_Click(object sender, EventArgs e) { if (this.menuSelected[3] == false) { SelectCounter(); } } private void panCounter_MouseHover(object sender, EventArgs e) { if (this.menuSelected[3] == false) { HoverCounter(); } } private void panCounter_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[3] == false) { LeaveCounter(); } } private void panMeasure_Click(object sender, EventArgs e) { if (this.menuSelected[4] == false) { SelectMeasure(); } } private void panMeasure_MouseHover(object sender, EventArgs e) { if (this.menuSelected[4] == false) { HoverMeasure(); } } private void panMeasure_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[4] == false) { LeaveMeasure(); } } private void panData_Click(object sender, EventArgs e) { if (this.menuSelected[5] == false) { SelectData(); } } private void panData_MouseHover(object sender, EventArgs e) { if (this.menuSelected[5] == false) { HoverData(); } } private void panData_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[5] == false) { LeaveData(); } } private void panSetting_Click(object sender, EventArgs e) { if (this.menuSelected[6] == false) { SelectSetting(); } } private void panSetting_MouseHover(object sender, EventArgs e) { if (this.menuSelected[6] == false) { HoverSetting(); } } private void panSetting_MouseLeave(object sender, EventArgs e) { if (this.menuSelected[6] == false) { LeaveSetting(); } } private void switchMainPanel(int index) { this.panelMain.Controls.Clear(); switch (index) { case 0: // 首页 HomeCtrlForm home = new HomeCtrlForm(); home.Show(); this.panelMain.Controls.Add(home); break; case 1: // 基准状态 StatusCtrlForm statusForm = new StatusCtrlForm(); statusForm.Show(); this.panelMain.Controls.Add(statusForm); break; case 2: // 待检设备 InfoCtrlForm infoForm = new InfoCtrlForm(); infoForm.Show(); this.panelMain.Controls.Add(infoForm); break; case 3: // 频率计数器范围 break; case 4: // 计量信息 DevTestedCtrlForm tested = new DevTestedCtrlForm(); tested.Show(); this.panelMain.Controls.Add(tested); break; case 6: // 设置 SettingCtrlForm settingForm = new SettingCtrlForm(); settingForm.Show(); this.panelMain.Controls.Add(settingForm); break; default: break; } } } }