### RaUI V4.0.2506.2701 - *.[新增]RediskCheck类新增支持对.NET3.5和.NET6-.NET9安装状态的判断。 - *.[新增]RyImage类的LoadPic方法新增Timeout参数设置。 - *.[新增]ChromeTabControl控件新增OnTabAddButtonClick和OnTabCloseButtonClick事件。 - *.[新增]Strings类新增GetEngOrNumPos方法,获取字符串里的英文或数字。 - *.[改进]ChromeTabControl默认风格改进。 - *.[改进]GetTimeStr新增ShowSeconds参数。 - *.[改进]RyImage.LoadPic获取网络图片时,UA改为Edge的UA。 - *.[改进]ListBoxEx从内部控件改为公开控件。 - *.[修复]AddHosts(string list,bool write)函数write为false时,不再写入hosts。 - *.[修复]修复无法在属性界面修改RichTextBox2的WordWrap属性的BUG。 - *.[修复]修复ApkOp读取apk内部版本号时,如果版本号带数字0可能无法读取的BUG。 - *.[修复]修复GetVerByVerStr传入null值会报错的BUG。 - *.[修复]修复ComboBoxEx2控件修改SelectedItem和SelectedIndex属性不会激发SelectedIndexChanged事件的BUG。 - *.[修复]修复ApkOp解压某些apk文件时,可能导致文件被占用的BUG。 - *.[修复]修复TextBoxEx2控件通过代码设置文本,无法触发文本变化事件的BUG。 - *.[修复]修复TextBoxEx2控件使用Tab按键,无法切换输入的BUG。
149 lines
4.8 KiB
C#
149 lines
4.8 KiB
C#
using MGdu.WinFormUI;
|
|
using ryControls;
|
|
using SkinPreview;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace RySkins
|
|
{
|
|
[ComVisible(true)]
|
|
public partial class SKinTabForm : SKinForm
|
|
{
|
|
public new DateTime OpenTime { get; private set; } = DateTime.MinValue;
|
|
/// <summary>
|
|
/// 无参数启动
|
|
/// </summary>
|
|
public SKinTabForm() : base()
|
|
{
|
|
OpenTime = DateTime.Now;
|
|
InitializeComponent();
|
|
this.Resize += TabControl1_Resize;
|
|
InitTab();
|
|
}
|
|
/// <summary>
|
|
/// 无参数启动
|
|
/// </summary>
|
|
public SKinTabForm(string[] args) : base()
|
|
{
|
|
OpenTime = DateTime.Now;
|
|
InitializeComponent();
|
|
this.Resize += TabControl1_Resize;
|
|
InitTab();
|
|
}
|
|
private void InitTab()
|
|
{
|
|
UpdateSkins();
|
|
//chromeTabControl1.Radius =4;
|
|
chromeTabControl1.TabMaxWidth = 200;
|
|
chromeTabControl1.SizeMode = TabSizeMode.Fixed;
|
|
chromeTabControl1.SelectedIndexChanged += TabControl1_SelectedIndexChanged;
|
|
}
|
|
/// <summary>
|
|
/// 显示的窗口列表
|
|
/// </summary>
|
|
public List<Form> TabForms { get; set; }=new List<Form>();
|
|
private int _SelectedIndex = 0;
|
|
/// <summary>
|
|
/// 设置选择的标签页
|
|
/// </summary>
|
|
public int SelectedIndex {
|
|
get
|
|
{
|
|
return _SelectedIndex;
|
|
}
|
|
set
|
|
{
|
|
_SelectedIndex = value;
|
|
if(chromeTabControl1.TabPages.Count> _SelectedIndex)
|
|
{
|
|
chromeTabControl1.SelectedIndex= _SelectedIndex;
|
|
}
|
|
}
|
|
}
|
|
public void UpdateSkins()
|
|
{
|
|
chromeTabControl1.TabOnColorStart = XTheme.Mdi_TabActiveBackColorTop;
|
|
chromeTabControl1.TabOnColorEnd = XTheme.Mdi_TabActiveBackColorBottom;
|
|
chromeTabControl1.TabOffColorStart = XTheme.Mdi_TabDeactiveBackColorTop;
|
|
chromeTabControl1.TabOffColorEnd = XTheme.Mdi_TabDeactiveBackColorBottom;
|
|
chromeTabControl1.TabMoveColorStart = SkinSetting.TabMoveColorStart;
|
|
chromeTabControl1.TabMoveColorEnd = SkinSetting.TabMoveColorEnd;
|
|
chromeTabControl1.DrawTabBorder = SkinSetting.DrawTabBorder;
|
|
chromeTabControl1.BackTabPageColor = SkinSetting.AllTabBackColor;
|
|
this.BackColor= SkinSetting.AllTabBackColor;
|
|
//chromeTabControl1.wid
|
|
chromeTabControl1.Radius= XTheme.TabRadius;
|
|
chromeTabControl1.Refresh();
|
|
}
|
|
private void SKinTabForm_Load(object sender, EventArgs e)
|
|
{
|
|
UpdateSkins();
|
|
for (int i = 0; i < TabForms.Count; i++)
|
|
{
|
|
var item = TabForms[i];
|
|
item.EnabledChanged += Item_EnabledChanged;
|
|
TabPage tab = new TabPage
|
|
{
|
|
Text = item.Text+" ",
|
|
BackColor= SystemColors.Window
|
|
};
|
|
ryCommon.RyForm.SetChildStyle(item);
|
|
ryCommon.RyForm.SetParentWin(item, tab);
|
|
chromeTabControl1.TabPages.Add(tab);
|
|
if(i==_SelectedIndex)
|
|
{
|
|
item.Show();
|
|
}
|
|
}
|
|
ReizeUI();
|
|
}
|
|
|
|
private void Item_EnabledChanged(object sender, EventArgs e)
|
|
{
|
|
this.Enabled = ((Form)sender).Enabled;
|
|
}
|
|
|
|
private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
TabForms[chromeTabControl1.SelectedIndex].Activate();
|
|
TabForms[chromeTabControl1.SelectedIndex].Show();
|
|
}
|
|
|
|
private void TabControl1_Resize(object sender, EventArgs e)
|
|
{
|
|
ReizeUI();
|
|
}
|
|
|
|
private void ReizeUI()
|
|
{
|
|
if(chromeTabControl1.TabPages.Count!= TabForms.Count) { return; }
|
|
for (int i = 0; i < TabForms.Count; i++)
|
|
{
|
|
var item = TabForms[i];
|
|
chromeTabControl1.TabPages[i].Refresh();
|
|
ryCommon.RyForm.ResizeWin(item, chromeTabControl1.TabPages[i]);
|
|
}
|
|
}
|
|
|
|
private void SKinTabForm_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
for (int i = 0; i < TabForms.Count; i++)
|
|
{
|
|
var item = TabForms[i];
|
|
item.Close();
|
|
}
|
|
}
|
|
|
|
private void SKinTabForm_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
}
|
|
}
|
|
}
|