Commit 2fbebf77 leo GitHub 提交于

Merge pull request #1 from kwwwvagaa/master

同步
2 个父辈 44e0deea 9c28398e
正在显示 66 个修改的文件 包含 4436 行增加53 行删除
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace HZH_Controls
{
public class BasisColors
{
private static Color light = ColorTranslator.FromHtml("#f5f7fa");
public static Color Light
{
get { return light; }
internal set { light = value; }
}
private static Color medium = ColorTranslator.FromHtml("#f0f2f5");
public static Color Medium
{
get { return medium; }
internal set { medium = value; }
}
private static Color dark = ColorTranslator.FromHtml("#000000");
public static Color Dark
{
get { return dark; }
internal set { dark = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public class BorderColors
{
private static Color green = ColorTranslator.FromHtml("#f0f9ea");
public static Color Green
{
get { return green; }
internal set { green = value; }
}
private static Color blue = ColorTranslator.FromHtml("#ecf5ff");
public static Color Blue
{
get { return blue; }
internal set { blue = value; }
}
private static Color red = ColorTranslator.FromHtml("#fef0f0");
public static Color Red
{
get { return red; }
internal set { red = value; }
}
private static Color yellow = ColorTranslator.FromHtml("#fdf5e6");
public static Color Yellow
{
get { return yellow; }
internal set { yellow = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public enum BasisColorsTypes
{
Light = 1,
Medium = 2,
Dark = 3
}
public enum BorderColorsTypes
{
Green = 1,
Blue = 2,
Red = 3,
Yellow = 4
}
public enum GradientColorsTypes
{
Orange = 1,
LightGreen = 2,
Green = 3,
Blue = 4,
BlueGreen = 5,
LightViolet = 6,
Violet = 7,
Gray = 8
}
public enum LineColorsTypes
{
MoreLight = 1,
Light = 2,
Dark = 3,
MoreDark = 4
}
public enum StatusColorsTypes
{
Primary = 1,
Success = 2,
Warning = 3,
Danger = 4,
Info = 5
}
public enum TableColorsTypes
{
Green = 1,
Blue = 2,
Red = 3,
Yellow = 4,
Gray = 5
}
public enum TextColorsTypes
{
MoreLight = 1,
Light = 2,
Dark = 3,
MoreDark = 4
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public static class ColorExt
{
#region 重置内置的颜色 English:Reset color
public static void ResetColor(
this BasisColors type,
Color light,
Color medium,
Color dark)
{
BasisColors.Light = light;
BasisColors.Medium = medium;
BasisColors.Dark = dark;
}
public static void ResetColor(
this BorderColors type,
Color green,
Color blue,
Color red,
Color yellow)
{
BorderColors.Green = green;
BorderColors.Blue = blue;
BorderColors.Red = red;
BorderColors.Yellow = yellow;
}
public static void ResetColor(
this GradientColors type,
Color[] orange,
Color[] lightGreen,
Color[] green,
Color[] blue,
Color[] blueGreen,
Color[] lightViolet,
Color[] violet,
Color[] gray
)
{
if (orange != null && orange.Length == 2)
GradientColors.Orange = orange;
if (orange != null && orange.Length == 2)
GradientColors.LightGreen = lightGreen;
if (orange != null && orange.Length == 2)
GradientColors.Green = green;
if (orange != null && orange.Length == 2)
GradientColors.Blue = blue;
if (orange != null && orange.Length == 2)
GradientColors.BlueGreen = blueGreen;
if (orange != null && orange.Length == 2)
GradientColors.LightViolet = lightViolet;
if (orange != null && orange.Length == 2)
GradientColors.Violet = violet;
if (orange != null && orange.Length == 2)
GradientColors.Gray = gray;
}
public static void ResetColor(
this LineColors type,
Color moreLight,
Color light,
Color dark,
Color moreDark)
{
LineColors.MoreLight = moreLight;
LineColors.Light = light;
LineColors.Dark = dark;
LineColors.MoreDark = moreDark;
}
public static void ResetColor(
this StatusColors type,
Color primary,
Color success,
Color warning,
Color danger,
Color info
)
{
StatusColors.Primary = primary;
StatusColors.Success = success;
StatusColors.Warning = warning;
StatusColors.Danger = danger;
StatusColors.Info = info;
}
public static void ResetColor(
this TableColors type,
Color green,
Color blue,
Color red,
Color yellow,
Color gray
)
{
TableColors.Green = green;
TableColors.Blue = blue;
TableColors.Red = red;
TableColors.Yellow = yellow;
TableColors.Gray = gray;
}
public static void ResetColor(
this TextColors type,
Color moreLight,
Color light,
Color dark,
Color moreDark)
{
TextColors.MoreLight = moreLight;
TextColors.Light = light;
TextColors.Dark = dark;
TextColors.MoreDark = moreDark;
}
#endregion
#region 获取一个内置颜色 English:Get a built-in color
/// <summary>
/// 功能描述:获取一个内置颜色 English:Get a built-in color
/// 作  者:HZH
/// 创建日期:2019-09-30 11:08:04
/// 任务编号:POS
/// </summary>
/// <param name="t">t</param>
/// <returns>颜色列表</returns>
public static Color[] GetInternalColor<T>(T t)
{
Type type = null;
if (t is BasisColorsTypes)
{
type = typeof(BasisColors);
}
else if (t is BorderColorsTypes)
{
type = typeof(BorderColors);
}
else if (t is GradientColorsTypes)
{
type = typeof(GradientColors);
}
else if (t is LineColorsTypes)
{
type = typeof(LineColors);
}
else if (t is StatusColorsTypes)
{
type = typeof(StatusColors);
}
else if (t is TableColorsTypes)
{
type = typeof(TableColors);
}
else if (t is TextColorsTypes)
{
type = typeof(TextColors);
}
if (type == null)
return new Color[] { Color.Empty };
else
{
string strName = t.ToString();
var pi = type.GetProperty(strName);
if (pi == null)
return new Color[] { Color.Empty };
else
{
var c = pi.GetValue(null, null);
if (c == null)
return new Color[] { Color.Empty };
else if (c is Color[])
return (Color[])c;
else
return new Color[] { (Color)c };
}
}
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public class GradientColors
{
private static Color[] orange = new Color[] { Color.FromArgb(252, 196, 136), Color.FromArgb(243, 138, 159) };
public static Color[] Orange
{
get { return GradientColors.orange; }
internal set { GradientColors.orange = value; }
}
private static Color[] lightGreen = new Color[] { Color.FromArgb(210, 251, 123), Color.FromArgb(152, 231, 160) };
public static Color[] LightGreen
{
get { return GradientColors.lightGreen; }
internal set { GradientColors.lightGreen = value; }
}
private static Color[] green = new Color[] { Color.FromArgb(138, 241, 124), Color.FromArgb(32, 190, 179) };
public static Color[] Green
{
get { return GradientColors.green; }
internal set { GradientColors.green = value; }
}
private static Color[] blue = new Color[] { Color.FromArgb(193, 232, 251), Color.FromArgb(162, 197, 253) };
public static Color[] Blue
{
get { return GradientColors.blue; }
internal set { GradientColors.blue = value; }
}
private static Color[] blueGreen = new Color[] { Color.FromArgb(122, 251, 218), Color.FromArgb(16, 193, 252) };
public static Color[] BlueGreen
{
get { return GradientColors.blueGreen; }
internal set { GradientColors.blueGreen = value; }
}
private static Color[] lightViolet = new Color[] { Color.FromArgb(248, 192, 234), Color.FromArgb(164, 142, 210) };
public static Color[] LightViolet
{
get { return GradientColors.lightViolet; }
internal set { GradientColors.lightViolet = value; }
}
private static Color[] violet = new Color[] { Color.FromArgb(185, 154, 241), Color.FromArgb(137, 124, 242) };
public static Color[] Violet
{
get { return GradientColors.violet; }
internal set { GradientColors.violet = value; }
}
private static Color[] gray = new Color[] { Color.FromArgb(233, 238, 239), Color.FromArgb(147, 162, 175) };
public static Color[] Gray
{
get { return GradientColors.gray; }
internal set { GradientColors.gray = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public class LineColors
{
/// <summary>
/// The more light
/// </summary>
private static Color _MoreLight = ColorTranslator.FromHtml("#f2f6fc");
/// <summary>
/// Gets the more light.
/// </summary>
/// <value>The more light.</value>
public static Color MoreLight
{
get { return _MoreLight; }
internal set { _MoreLight = value; }
}
/// <summary>
/// The light
/// </summary>
private static Color _Light = ColorTranslator.FromHtml("#ebeef5");
/// <summary>
/// Gets the light.
/// </summary>
/// <value>The light.</value>
public static Color Light
{
get { return _Light; }
internal set { _Light = value; }
}
/// <summary>
/// The dark
/// </summary>
private static Color _Dark = ColorTranslator.FromHtml("#e4e7ed");
/// <summary>
/// Gets the dark.
/// </summary>
/// <value>The dark.</value>
public static Color Dark
{
get { return _Dark; }
internal set { _Dark = value; }
}
/// <summary>
/// The more dark
/// </summary>
private static Color _MoreDark = ColorTranslator.FromHtml("#dcdfe6");
/// <summary>
/// Gets the more dark.
/// </summary>
/// <value>The more dark.</value>
public static Color MoreDark
{
get { return _MoreDark; }
internal set { _MoreDark = value; }
}
}
}
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-09-30
//
// ***********************************************************************
// <copyright file="StatusColor.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
/// <summary>
/// 状态颜色
/// </summary>
public class StatusColors
{
/// <summary>
/// The primary
/// </summary>
private static Color _Primary = ColorTranslator.FromHtml("#409eff");
/// <summary>
/// Gets or sets the primary.
/// </summary>
/// <value>The primary.</value>
public static Color Primary
{
get { return _Primary; }
internal set { _Primary = value; }
}
/// <summary>
/// The success
/// </summary>
private static Color _Success = ColorTranslator.FromHtml("#67c23a");
/// <summary>
/// Gets or sets the success.
/// </summary>
/// <value>The success.</value>
public static Color Success
{
get { return _Success; }
internal set { _Success = value; }
}
/// <summary>
/// The warning
/// </summary>
private static Color _Warning = ColorTranslator.FromHtml("#e6a23c");
/// <summary>
/// Gets or sets the warning.
/// </summary>
/// <value>The warning.</value>
public static Color Warning
{
get { return _Warning; }
internal set { _Warning = value; }
}
/// <summary>
/// The danger
/// </summary>
private static Color _Danger = ColorTranslator.FromHtml("#f56c6c");
/// <summary>
/// Gets or sets the danger.
/// </summary>
/// <value>The danger.</value>
public static Color Danger
{
get { return _Danger; }
internal set { _Danger = value; }
}
/// <summary>
/// The information
/// </summary>
private static Color _Info = ColorTranslator.FromHtml("#909399");
/// <summary>
/// Gets or sets the information.
/// </summary>
/// <value>The information.</value>
public static Color Info
{
get { return _Info; }
internal set { _Info = value; }
}
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
public class TableColors
{
private static Color green = ColorTranslator.FromHtml("#c2e7b0");
public static Color Green
{
get { return green; }
internal set { green = value; }
}
private static Color blue = ColorTranslator.FromHtml("#a3d0fd");
public static Color Blue
{
get { return blue; }
internal set { blue = value; }
}
private static Color red = ColorTranslator.FromHtml("#fbc4c4");
public static Color Red
{
get { return red; }
internal set { red = value; }
}
private static Color yellow = ColorTranslator.FromHtml("#f5dab1");
public static Color Yellow
{
get { return yellow; }
internal set { yellow = value; }
}
private static Color gray = ColorTranslator.FromHtml("#d3d4d6");
public static Color Gray
{
get { return gray; }
internal set { gray = value; }
}
}
}
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-09-30
//
// ***********************************************************************
// <copyright file="TextColor.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls
{
/// <summary>
/// Class TextColor.
/// </summary>
public class TextColors
{
/// <summary>
/// The more light
/// </summary>
private static Color _MoreLight = ColorTranslator.FromHtml("#c0c4cc");
/// <summary>
/// Gets the more light.
/// </summary>
/// <value>The more light.</value>
public static Color MoreLight
{
get { return _MoreLight; }
internal set { _MoreLight = value; }
}
/// <summary>
/// The light
/// </summary>
private static Color _Light = ColorTranslator.FromHtml("#909399");
/// <summary>
/// Gets the light.
/// </summary>
/// <value>The light.</value>
public static Color Light
{
get { return _Light; }
internal set { _Light = value; }
}
/// <summary>
/// The dark
/// </summary>
private static Color _Dark = ColorTranslator.FromHtml("#606266");
/// <summary>
/// Gets the dark.
/// </summary>
/// <value>The dark.</value>
public static Color Dark
{
get { return _Dark; }
internal set { _Dark = value; }
}
/// <summary>
/// The more dark
/// </summary>
private static Color _MoreDark = ColorTranslator.FromHtml("#303133");
/// <summary>
/// Gets the more dark.
/// </summary>
/// <value>The more dark.</value>
public static Color MoreDark
{
get { return _MoreDark; }
internal set { _MoreDark = value; }
}
}
}
......@@ -230,6 +230,10 @@ namespace HZH_Controls.Controls
{
ReloadSource();
}
if (BindingSourceEvent != null)
{
BindingSourceEvent(this, null);
}
}
}
......@@ -337,7 +341,8 @@ namespace HZH_Controls.Controls
{
Control c = row as Control;
UCDataGridView grid = FindChildGrid(c);
lst.AddRange(grid.SelectRows);
if (grid != null)
lst.AddRange(grid.SelectRows);
}
}
return lst;
......@@ -449,13 +454,15 @@ namespace HZH_Controls.Controls
/// <summary>
/// Occurs when [source changed].
/// </summary>
[Description("数据源改变事件"), Category("自定义")]
public event DataGridViewEventHandler SourceChanged;
[Description("数据源改变事件"), Category("自定义")]
public event DataGridViewEventHandler RowSourceChangedEvent;
/// <summary>
/// Occurs when [row custom event].
/// </summary>
[Description("预留的自定义的事件,比如你需要在行上放置删改等按钮时,可以通过此事件传递出来"), Category("自定义")]
public event DataGridViewRowCustomEventHandler RowCustomEvent;
[Description("绑定数据源后事件"), Category("自定义")]
public event EventHandler BindingSourceEvent;
#endregion
#endregion
......@@ -579,7 +586,7 @@ namespace HZH_Controls.Controls
try
{
ControlHelper.FreezeControl(this.panRow, true);
this.panRow.Controls.Clear();
//this.panRow.Controls.Clear();
Rows = new List<IDataGridViewRow>();
if (m_columns == null || m_columns.Count <= 0)
return;
......@@ -797,8 +804,8 @@ namespace HZH_Controls.Controls
/// <param name="e">The <see cref="DataGridViewEventArgs" /> instance containing the event data.</param>
void RowSourceChanged(object sender, DataGridViewEventArgs e)
{
if (SourceChanged != null)
SourceChanged(sender, e);
if (RowSourceChangedEvent != null)
RowSourceChangedEvent(sender, e);
}
/// <summary>
/// Sets the select row.
......@@ -878,6 +885,6 @@ namespace HZH_Controls.Controls
// if (this.Height != intHeightCount)
// this.Height = intHeightCount;
//}
}
}
}
}
......@@ -144,23 +144,26 @@ namespace HZH_Controls.Controls
/// <returns>返回true则表示已处理过,否则将进行默认绑定(通常只针对有Text值的控件)</returns>
public void BindingCellData()
{
for (int i = 0; i < Columns.Count; i++)
if (DataSource != null)
{
DataGridViewColumnEntity com = Columns[i];
var cs = this.panCells.Controls.Find("lbl_" + com.DataField, false);
if (cs != null && cs.Length > 0)
for (int i = 0; i < Columns.Count; i++)
{
var pro = DataSource.GetType().GetProperty(com.DataField);
if (pro != null)
DataGridViewColumnEntity com = Columns[i];
var cs = this.panCells.Controls.Find("lbl_" + com.DataField, false);
if (cs != null && cs.Length > 0)
{
var value = pro.GetValue(DataSource, null);
if (com.Format != null)
var pro = DataSource.GetType().GetProperty(com.DataField);
if (pro != null)
{
cs[0].Text = com.Format(value);
}
else
{
cs[0].Text = value.ToStringExt();
var value = pro.GetValue(DataSource, null);
if (com.Format != null)
{
cs[0].Text = com.Format(value);
}
else
{
cs[0].Text = value.ToStringExt();
}
}
}
}
......
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-10-08
//
// ***********************************************************************
// <copyright file="NavigationMenuItem.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls.Controls
{
/// <summary>
/// Class NavigationMenuItem.
/// </summary>
public class NavigationMenuItem : NavigationMenuItemBase
{
/// <summary>
/// The items
/// </summary>
private NavigationMenuItem[] items;
/// <summary>
/// Gets or sets the items.
/// </summary>
/// <value>The items.</value>
[Description("子项列表")]
public NavigationMenuItem[] Items
{
get { return items; }
set
{
items = value;
if (value != null)
{
foreach (var item in value)
{
item.ParentItem = this;
}
}
}
}
/// <summary>
/// Gets or sets a value indicating whether this instance has split lint at top.
/// </summary>
/// <value><c>true</c> if this instance has split lint at top; otherwise, <c>false</c>.</value>
[Description("是否在此项顶部显示一个分割线")]
public bool HasSplitLintAtTop { get; set; }
/// <summary>
/// Gets the parent item.
/// </summary>
/// <value>The parent item.</value>
[Description("父节点")]
public NavigationMenuItem ParentItem { get; private set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
namespace HZH_Controls.Controls
{
public class NavigationMenuItemBase
{
/// <summary>
/// The icon
/// </summary>
private Image icon;
/// <summary>
/// Gets or sets the icon.
/// </summary>
/// <value>The icon.</value>
[Description("图标,仅顶级节点有效")]
public Image Icon
{
get { return icon; }
set { icon = value; }
}
/// <summary>
/// The text
/// </summary>
private string text;
/// <summary>
/// Gets or sets the text.
/// </summary>
/// <value>The text.</value>
[Description("文本")]
public string Text
{
get { return text; }
set { text = value; }
}
/// <summary>
/// The show tip
/// </summary>
private bool showTip;
/// <summary>
/// Gets or sets a value indicating whether [show tip].当TipText为空时只显示一个小圆点,否则显示TipText文字
/// </summary>
/// <value><c>true</c> if [show tip]; otherwise, <c>false</c>.</value>
[Description("是否显示角标,仅顶级节点有效")]
public bool ShowTip
{
get { return showTip; }
set { showTip = value; }
}
/// <summary>
/// The tip text
/// </summary>
private string tipText;
/// <summary>
/// Gets or sets the tip text
/// </summary>
/// <value>The tip text.</value>
[Description("角标文字,仅顶级节点有效")]
public string TipText
{
get { return tipText; }
set { tipText = value; }
}
/// <summary>
/// The anchor right
/// </summary>
private bool anchorRight;
/// <summary>
/// Gets or sets a value indicating whether [anchor right].
/// </summary>
/// <value><c>true</c> if [anchor right]; otherwise, <c>false</c>.</value>
[Description("是否靠右对齐")]
public bool AnchorRight
{
get { return anchorRight; }
set { anchorRight = value; }
}
/// <summary>
/// The item width
/// </summary>
private int itemWidth = 100;
/// <summary>
/// Gets or sets the width of the item.
/// </summary>
/// <value>The width of the item.</value>
[Description("宽度")]
public int ItemWidth
{
get { return itemWidth; }
set { itemWidth = value; }
}
/// <summary>
/// Gets or sets the data source.
/// </summary>
/// <value>The data source.</value>
[Description("数据源")]
public object DataSource { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HZH_Controls.Controls
{
public class NavigationMenuItemExt : NavigationMenuItemBase
{
public System.Windows.Forms.Control ShowControl { get; set; }
}
}
namespace HZH_Controls.Controls
{
partial class UCNavigationMenu
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// UCNavigationMenu
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(61)))), ((int)(((byte)(73)))));
this.Font = new System.Drawing.Font("微软雅黑", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.Name = "UCNavigationMenu";
this.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.Size = new System.Drawing.Size(529, 60);
this.ResumeLayout(false);
}
#endregion
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace HZH_Controls.Controls
{
partial class UCNavigationMenuExt
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// UCNavigationMenuExt
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(61)))), ((int)(((byte)(73)))));
this.Font = new System.Drawing.Font("微软雅黑", 11F);
this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.Name = "UCNavigationMenuExt";
this.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.Size = new System.Drawing.Size(529, 60);
this.ResumeLayout(false);
}
#endregion
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace HZH_Controls.Controls
{
partial class UCNavigationMenuOffice
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.panMenu = new System.Windows.Forms.Panel();
this.panChilds = new System.Windows.Forms.Panel();
this.SuspendLayout();
//
// panMenu
//
this.panMenu.Dock = System.Windows.Forms.DockStyle.Top;
this.panMenu.Location = new System.Drawing.Point(0, 0);
this.panMenu.MaximumSize = new System.Drawing.Size(0, 25);
this.panMenu.MinimumSize = new System.Drawing.Size(0, 25);
this.panMenu.Name = "panMenu";
this.panMenu.Size = new System.Drawing.Size(441, 25);
this.panMenu.TabIndex = 0;
//
// panChilds
//
this.panChilds.Dock = System.Windows.Forms.DockStyle.Fill;
this.panChilds.Location = new System.Drawing.Point(0, 25);
this.panChilds.Name = "panChilds";
this.panChilds.Size = new System.Drawing.Size(441, 100);
this.panChilds.TabIndex = 1;
//
// UCNavigationMenuOffice
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(61)))), ((int)(((byte)(73)))));
this.Controls.Add(this.panChilds);
this.Controls.Add(this.panMenu);
this.Font = new System.Drawing.Font("微软雅黑", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.Name = "UCNavigationMenuOffice";
this.Size = new System.Drawing.Size(441, 125);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panMenu;
private System.Windows.Forms.Panel panChilds;
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-10-09
//
// ***********************************************************************
// <copyright file="UCSplitLabel.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
namespace HZH_Controls.Controls
{
/// <summary>
/// Class UCSplitLabel.
/// Implements the <see cref="System.Windows.Forms.Label" />
/// </summary>
/// <seealso cref="System.Windows.Forms.Label" />
public class UCSplitLabel : Label
{
/// <summary>
/// Gets or sets the text.
/// </summary>
/// <value>The text.</value>
[Localizable(true)]
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
ResetMaxSize();
}
}
/// <summary>
/// 获取或设置控件显示的文字的字体。
/// </summary>
/// <value>The font.</value>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence" />
/// <IPermission class="System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// </PermissionSet>
[Localizable(true)]
public override Font Font
{
get
{
return base.Font;
}
set
{
base.Font = value;
ResetMaxSize();
}
}
/// <summary>
/// 获取或设置大小,该大小是 <see cref="M:System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)" /> 可以指定的下限。
/// </summary>
/// <value>The minimum size.</value>
[Localizable(true)]
public override Size MinimumSize
{
get
{
return base.MinimumSize;
}
set
{
base.MinimumSize = value;
ResetMaxSize();
}
}
/// <summary>
/// 获取或设置大小,该大小是 <see cref="M:System.Windows.Forms.Control.GetPreferredSize(System.Drawing.Size)" /> 可以指定的上限。
/// </summary>
/// <value>The maximum size.</value>
[Localizable(true)]
public override Size MaximumSize
{
get
{
return base.MaximumSize;
}
set
{
base.MaximumSize = value;
ResetMaxSize();
}
}
/// <summary>
/// 获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。
/// </summary>
/// <value><c>true</c> if [automatic size]; otherwise, <c>false</c>.</value>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence" />
/// <IPermission class="System.Diagnostics.PerformanceCounterPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// </PermissionSet>
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public override bool AutoSize
{
get
{
return base.AutoSize;
}
set
{
base.AutoSize = value;
}
}
/// <summary>
/// The line color
/// </summary>
private Color lineColor = LineColors.Light;
/// <summary>
/// Gets or sets the color of the line.
/// </summary>
/// <value>The color of the line.</value>
public Color LineColor
{
get { return lineColor; }
set
{
lineColor = value;
Invalidate();
}
}
/// <summary>
/// Resets the maximum size.
/// </summary>
private void ResetMaxSize()
{
using (var g = this.CreateGraphics())
{
var _width = Width;
var size = g.MeasureString(string.IsNullOrEmpty(Text) ? "A" : Text, Font);
if (MinimumSize.Height != (int)size.Height)
MinimumSize = new Size(base.MinimumSize.Width, (int)size.Height);
if (MaximumSize.Height != (int)size.Height)
MaximumSize = new Size(base.MaximumSize.Width, (int)size.Height);
this.Width = _width;
}
}
/// <summary>
/// Initializes a new instance of the <see cref="UCSplitLabel"/> class.
/// </summary>
public UCSplitLabel()
: base()
{
if (ControlHelper.IsDesignMode())
{
Text = "分割线";
Font = new Font("微软雅黑", 8f);
}
this.AutoSize = false;
Padding = new Padding(20, 0, 0, 0);
MinimumSize = new System.Drawing.Size(150, 10);
PaddingChanged += UCSplitLabel_PaddingChanged;
this.Width = 200;
}
/// <summary>
/// Handles the PaddingChanged event of the UCSplitLabel control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
void UCSplitLabel_PaddingChanged(object sender, EventArgs e)
{
if (Padding.Left < 20)
{
Padding = new Padding(20, Padding.Top, Padding.Right, Padding.Bottom);
}
}
/// <summary>
/// Handles the <see cref="E:Paint" /> event.
/// </summary>
/// <param name="e">包含事件数据的 <see cref="T:System.Windows.Forms.PaintEventArgs" />。</param>
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var g = e.Graphics;
g.SetGDIHigh();
var size = g.MeasureString(Text, Font);
g.DrawLine(new Pen(new SolidBrush(lineColor)), new PointF(1, Padding.Top + (this.Height - Padding.Top - Padding.Bottom) / 2), new PointF(Padding.Left - 2, Padding.Top + (this.Height - Padding.Top - Padding.Bottom) / 2));
g.DrawLine(new Pen(new SolidBrush(lineColor)), new PointF(Padding.Left + size.Width + 1, Padding.Top + (this.Height - Padding.Top - Padding.Bottom) / 2), new PointF(Width - Padding.Right, Padding.Top + (this.Height - Padding.Top - Padding.Bottom) / 2));
}
}
}
namespace HZH_Controls.Controls
{
partial class UCTimeLine
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// UCTimeLine
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.AutoScroll = true;
this.Name = "UCTimeLine";
this.Padding = new System.Windows.Forms.Padding(30, 0, 0, 0);
this.Size = new System.Drawing.Size(673, 377);
this.ResumeLayout(false);
}
#endregion
}
}
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-10-09
//
// ***********************************************************************
// <copyright file="UCTimeLine.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace HZH_Controls.Controls
{
/// <summary>
/// Class UCTimeLine.
/// Implements the <see cref="System.Windows.Forms.UserControl" />
/// </summary>
/// <seealso cref="System.Windows.Forms.UserControl" />
public partial class UCTimeLine : UserControl
{
/// <summary>
/// The line color
/// </summary>
private Color lineColor = TextColors.Light;
/// <summary>
/// Gets or sets the color of the line.
/// </summary>
/// <value>The color of the line.</value>
[Description("连接线颜色"), Category("自定义")]
public Color LineColor
{
get { return lineColor; }
set
{
lineColor = value;
Invalidate();
}
}
/// <summary>
/// The title font
/// </summary>
private Font titleFont = new Font("微软雅黑", 14f);
/// <summary>
/// Gets or sets the title font.
/// </summary>
/// <value>The title font.</value>
[Description("标题字体"), Category("自定义")]
public Font TitleFont
{
get { return titleFont; }
set
{
titleFont = value;
ReloadItems();
}
}
/// <summary>
/// The title forcolor
/// </summary>
private Color titleForcolor = TextColors.MoreDark;
/// <summary>
/// Gets or sets the title forcolor.
/// </summary>
/// <value>The title forcolor.</value>
[Description("标题颜色"), Category("自定义")]
public Color TitleForcolor
{
get { return titleForcolor; }
set
{
titleForcolor = value;
ReloadItems();
}
}
/// <summary>
/// The details font
/// </summary>
private Font detailsFont = new Font("微软雅黑", 10);
/// <summary>
/// Gets or sets the details font.
/// </summary>
/// <value>The details font.</value>
[Description("详情字体"), Category("自定义")]
public Font DetailsFont
{
get { return detailsFont; }
set
{
detailsFont = value;
ReloadItems();
}
}
/// <summary>
/// The details forcolor
/// </summary>
private Color detailsForcolor = TextColors.Light;
/// <summary>
/// Gets or sets the details forcolor.
/// </summary>
/// <value>The details forcolor.</value>
[Description("详情颜色"), Category("自定义")]
public Color DetailsForcolor
{
get { return detailsForcolor; }
set
{
detailsForcolor = value;
ReloadItems();
}
}
/// <summary>
/// The items
/// </summary>
TimeLineItem[] items;
/// <summary>
/// Gets or sets the items.
/// </summary>
/// <value>The items.</value>
[Description("项列表"), Category("自定义")]
public TimeLineItem[] Items
{
get { return items; }
set
{
items = value;
ReloadItems();
}
}
/// <summary>
/// Initializes a new instance of the <see cref="UCTimeLine"/> class.
/// </summary>
public UCTimeLine()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
InitializeComponent();
items = new TimeLineItem[0];
if (ControlHelper.IsDesignMode())
{
items = new TimeLineItem[4];
for (int i = 0; i < 4; i++)
{
items[i] = new TimeLineItem()
{
Title = DateTime.Now.AddMonths(-1 * (3 - i)).ToString("yyyy年MM月"),
Details = DateTime.Now.AddMonths(-1 * (3 - i)).ToString("yyyy年MM月") + "发生了一件大事,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,然后王二麻子他爹王咔嚓出生了。"
};
}
ReloadItems();
}
}
/// <summary>
/// Reloads the items.
/// </summary>
private void ReloadItems()
{
try
{
ControlHelper.FreezeControl(this, true);
this.Controls.Clear();
if (items != null)
{
foreach (var item in items)
{
FlowLayoutPanel panelTitle = new FlowLayoutPanel();
panelTitle.Dock = DockStyle.Top;
panelTitle.AutoScroll = false;
panelTitle.Padding = new System.Windows.Forms.Padding(5);
panelTitle.Name = "title_" + Guid.NewGuid().ToString();
Label lblTitle = new Label();
lblTitle.Dock = DockStyle.Top;
lblTitle.AutoSize = true;
lblTitle.Font = titleFont;
lblTitle.ForeColor = titleForcolor;
lblTitle.Text = item.Title;
lblTitle.SizeChanged += item_SizeChanged;
panelTitle.Controls.Add(lblTitle);
this.Controls.Add(panelTitle);
panelTitle.BringToFront();
FlowLayoutPanel panelDetails = new FlowLayoutPanel();
panelDetails.Dock = DockStyle.Top;
panelDetails.AutoScroll = false;
panelDetails.Padding = new System.Windows.Forms.Padding(5);
panelDetails.Name = "details_" + Guid.NewGuid().ToString();
Label lblDetails = new Label();
lblDetails.AutoSize = true;
lblDetails.Dock = DockStyle.Top;
lblDetails.Font = detailsFont;
lblDetails.ForeColor = detailsForcolor;
lblDetails.Text = item.Details;
lblDetails.SizeChanged += item_SizeChanged;
panelDetails.Controls.Add(lblDetails);
this.Controls.Add(panelDetails);
panelDetails.BringToFront();
}
}
}
finally
{
ControlHelper.FreezeControl(this, false);
}
}
/// <summary>
/// Handles the SizeChanged event of the item control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
void item_SizeChanged(object sender, EventArgs e)
{
Label lbl = (Label)sender;
lbl.Parent.Height = lbl.Height + 10;
}
/// <summary>
/// 引发 <see cref="E:System.Windows.Forms.Control.Paint" /> 事件。
/// </summary>
/// <param name="e">包含事件数据的 <see cref="T:System.Windows.Forms.PaintEventArgs" />。</param>
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var g = e.Graphics;
g.SetGDIHigh();
var lst = this.Controls.ToArray().Where(p => p.Name.StartsWith("title_")).ToList();
for (int i = 0; i < lst.Count; i++)
{
//画圆
g.DrawEllipse(new Pen(new SolidBrush(lineColor)), new Rectangle(7, lst[i].Location.Y + 10, 16, 16));
//划线
if (i != lst.Count - 1)
{
g.DrawLine(new Pen(new SolidBrush(lineColor)), new Point(7 + 8, lst[i].Location.Y + 10 - 2), new Point(7 + 8, lst[i + 1].Location.Y + 10 + 16 + 2));
}
}
}
}
/// <summary>
/// Class TimeLineItem.
/// </summary>
public class TimeLineItem
{
/// <summary>
/// Gets or sets the title.
/// </summary>
/// <value>The title.</value>
public string Title { get; set; }
/// <summary>
/// Gets or sets the details.
/// </summary>
/// <value>The details.</value>
public string Details { get; set; }
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HZH_Controls.Controls
{
public class TransferEventArgs : EventArgs
{
public object[] TransferDataSource { get; set; }
/// <summary>
/// true:right false:left
/// </summary>
/// <value><c>true</c> if [to right or left]; otherwise, <c>false</c>.</value>
public bool ToRightOrLeft { get; set; }
}
public delegate void TransferEventHandler(object sender,TransferEventArgs e);
}
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 2019-10-10
//
// ***********************************************************************
// <copyright file="UCTransfer.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHub:https://github.com/kwwwvagaa/NetWinformControl
// gitee:https://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace HZH_Controls.Controls
{
/// <summary>
/// Class UCTransfer.
/// Implements the <see cref="System.Windows.Forms.UserControl" />
/// </summary>
/// <seealso cref="System.Windows.Forms.UserControl" />
[DefaultEvent("Transfered")]
public partial class UCTransfer : UserControl
{
/// <summary>
/// 移动数据事件
/// </summary>
[Description("移动数据事件"), Category("自定义")]
public event TransferEventHandler Transfered;
/// <summary>
/// The left columns
/// </summary>
private DataGridViewColumnEntity[] leftColumns;
/// <summary>
/// Gets or sets the left columns.
/// </summary>
/// <value>The left columns.</value>
[Description("左侧列表列"), Category("自定义")]
public DataGridViewColumnEntity[] LeftColumns
{
get { return leftColumns; }
set
{
leftColumns = value;
this.dgvLeft.Columns = leftColumns.ToList();
}
}
/// <summary>
/// The right columns
/// </summary>
private DataGridViewColumnEntity[] rightColumns;
/// <summary>
/// Gets or sets the right columns.
/// </summary>
/// <value>The right columns.</value>
[Description("右侧列表列"), Category("自定义")]
public DataGridViewColumnEntity[] RightColumns
{
get { return rightColumns; }
set
{
rightColumns = value;
this.dgvRight.Columns = leftColumns.ToList();
}
}
/// <summary>
/// The left data source
/// </summary>
private object[] leftDataSource;
/// <summary>
/// 左右列表必须设置相同类型的数据源列表,如果为空必须为长度为0的数组
/// </summary>
/// <value>The left data source.</value>
[Description("左侧列表数据源"), Category("自定义"), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public object[] LeftDataSource
{
get { return leftDataSource; }
set
{
leftDataSource = value;
dgvLeft.DataSource = value;
}
}
/// <summary>
/// The right data source
/// </summary>
private object[] rightDataSource;
/// <summary>
/// 左右列表必须设置相同类型的数据源列表,如果为空必须为长度为0的数组
/// </summary>
/// <value>The left data source.</value>
[Description("右侧列表数据源"), Category("自定义"), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public object[] RightDataSource
{
get { return rightDataSource; }
set
{
rightDataSource = value;
dgvRight.DataSource = value;
}
}
/// <summary>
/// Initializes a new instance of the <see cref="UCTransfer"/> class.
/// </summary>
public UCTransfer()
{
InitializeComponent();
dgvLeft.IsCloseAutoHeight = true;
dgvRight.IsCloseAutoHeight = true;
LeftColumns = new DataGridViewColumnEntity[0];
RightColumns = new DataGridViewColumnEntity[0];
LeftDataSource = new object[0];
RightDataSource = new object[0];
}
/// <summary>
/// Handles the BtnClick event of the btnRight control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
/// <exception cref="System.Exception">
/// 左右数据源列表不能为空
/// or
/// 左右数据源列表类型不一致,无法进行操作
/// </exception>
private void btnRight_BtnClick(object sender, EventArgs e)
{
if (LeftDataSource == null || RightDataSource == null)
{
throw new Exception("左右数据源列表不能为空");
}
if (LeftDataSource.GetType() != RightDataSource.GetType())
{
throw new Exception("左右数据源列表类型不一致,无法进行操作");
}
if (dgvLeft.SelectRows == null || dgvLeft.SelectRows.Count <= 0)
return;
List<object> lst = new List<object>();
dgvLeft.SelectRows.ForEach(p =>
{
lst.Add(p.DataSource);
p.IsChecked = false;
});
var lstRight = RightDataSource.ToList();
lstRight.AddRange(lst);
var lstLeft = LeftDataSource.ToList();
lstLeft.RemoveAll(p => lst.Contains(p));
RightDataSource = lstRight.ToArray();
LeftDataSource = lstLeft.ToArray();
if (Transfered != null)
{
Transfered(this, new TransferEventArgs() { TransferDataSource = lst.ToArray(), ToRightOrLeft = true });
}
}
/// <summary>
/// Handles the BtnClick event of the btnLeft control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
/// <exception cref="System.Exception">
/// 左右数据源列表不能为空
/// or
/// 左右数据源列表类型不一致,无法进行操作
/// </exception>
private void btnLeft_BtnClick(object sender, EventArgs e)
{
if (LeftDataSource == null || RightDataSource == null)
{
throw new Exception("左右数据源列表不能为空");
}
if (LeftDataSource.GetType() != RightDataSource.GetType())
{
throw new Exception("左右数据源列表类型不一致,无法进行操作");
}
if (dgvRight.SelectRows == null || dgvRight.SelectRows.Count <= 0)
return;
List<object> lst = new List<object>();
dgvRight.SelectRows.ForEach(p =>
{
lst.Add(p.DataSource);
p.IsChecked = false;
});
var lstLeft = LeftDataSource.ToList();
lstLeft.AddRange(lst);
var lstRight = RightDataSource.ToList();
lstRight.RemoveAll(p => lst.Contains(p));
RightDataSource = lstRight.ToArray();
LeftDataSource = lstLeft.ToArray();
if (Transfered != null)
{
Transfered(this, new TransferEventArgs() { TransferDataSource = lst.ToArray(), ToRightOrLeft = false });
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btnLeft.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAB5SURBVFhH7dXBDYAgDAVQlnEBx3IldqHQLZxGKSkkmtQT
GIz/JYT0X34vBAcA8HkhhJWI9ny8RoWVd1VLYoyH3BqbeVf3Epmf8q5Q/r9yYZW8Ui5ygZciLWtv28qH
wBIVlqimWiLfl0/HyodIKW3MvOjYWDkATMS5E+hGfXDhMAVvAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnLeft.ImageFontIcons" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAB5SURBVFhH7dXBDYAgDAVQlnEBx3IldqHQLZxGKSkkmtQT
GIz/JYT0X34vBAcA8HkhhJWI9ny8RoWVd1VLYoyH3BqbeVf3Epmf8q5Q/r9yYZW8Ui5ygZciLWtv28qH
wBIVlqimWiLfl0/HyodIKW3MvOjYWDkATMS5E+hGfXDhMAVvAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnRight.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAACJSURBVFhH7ZXNCcAgDEZdpgt0rK7UGbqCf1s4TWuKgSLG
U0IRvgcefJenh6gDAIAlyDlvIYRS19nUi+TVSSkdMcab1jcmeRMoMIpJ3gQcgsEhmBq4OEYT0bToVfHe
7zVU2k0LvQkzr0ofof3Mq4L4L3H+dPqI5NXhT6ePSN4Eio1GSvIAgEVw7gENgIbqKKEIVQAAAABJRU5E
rkJggg==
</value>
</data>
<data name="btnRight.ImageFontIcons" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAACJSURBVFhH7ZXNCcAgDEZdpgt0rK7UGbqCf1s4TWuKgSLG
U0IRvgcefJenh6gDAIAlyDlvIYRS19nUi+TVSSkdMcab1jcmeRMoMIpJ3gQcgsEhmBq4OEYT0bToVfHe
7zVU2k0LvQkzr0ofof3Mq4L4L3H+dPqI5NXhT6ePSN4Eio1GSvIAgEVw7gENgIbqKKEIVQAAAABJRU5E
rkJggg==
</value>
</data>
</root>
\ No newline at end of file
......@@ -103,6 +103,20 @@ namespace HZH_Controls.Controls
set { errorTipsForeColor = value; }
}
private int autoCloseErrorTipsTime = 3000;
[Browsable(true), Category("自定义属性"), Description("自动关闭提示事件,当值为0时不自动关闭"), Localizable(true)]
public int AutoCloseErrorTipsTime
{
get { return autoCloseErrorTipsTime; }
set
{
if (value < 0)
return;
autoCloseErrorTipsTime = value;
}
}
#region 构造函数 English:Constructor
/// <summary>
/// Initializes a new instance of the <see cref="VerificationComponent"/> class.
......@@ -438,11 +452,64 @@ namespace HZH_Controls.Controls
}
else
{
var tips = Forms.FrmAnchorTips.ShowTips(e.VerificationControl, e.ErrorMsg, background: errorTipsBackColor, foreColor: errorTipsForeColor, autoCloseTime: 0, blnTopMost: false);
var tips = Forms.FrmAnchorTips.ShowTips(e.VerificationControl, e.ErrorMsg, background: errorTipsBackColor, foreColor: errorTipsForeColor, autoCloseTime: autoCloseErrorTipsTime, blnTopMost: false);
tips.FormClosing += tips_FormClosing;
m_controlTips[e.VerificationControl] = tips;
}
}
}
#endregion
void tips_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (var item in m_controlTips)
{
if (item.Value == sender)
{
m_controlTips.Remove(item.Key);
break;
}
}
}
#endregion
/// <summary>
/// 关闭所有错误提示
/// </summary>
public void CloseErrorTips()
{
for (int i = 0; i < 1; )
{
try
{
foreach (var item in m_controlTips)
{
if (item.Value != null && !item.Value.IsDisposed)
{
item.Value.Close();
}
}
}
catch
{
continue;
}
i++;
}
m_controlTips.Clear();
}
/// <summary>
/// 关闭指定验证控件的提示
/// </summary>
/// <param name="verificationControl">验证控件.</param>
public void CloseErrorTips(Control verificationControl)
{
if (m_controlTips.ContainsKey(verificationControl))
{
if (m_controlTips[verificationControl] != null && !m_controlTips[verificationControl].IsDisposed)
{
m_controlTips[verificationControl].Close();
}
}
}
}
}
......@@ -244,7 +244,7 @@ namespace HZH_Controls.Forms
Graphics gBit = Graphics.FromImage(bit);
gBit.SetGDIHigh();
gBit.FillPath(new SolidBrush(_background), path);
gBit.DrawString(strMsg, _font, new SolidBrush(_foreColor), rect, new StringFormat() { Alignment= StringAlignment.Center, LineAlignment= StringAlignment.Center});
gBit.DrawString(strMsg, _font, new SolidBrush(_foreColor), rect, new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
gBit.Dispose();
#endregion
......@@ -256,7 +256,7 @@ namespace HZH_Controls.Forms
/// <summary>
/// Shows the tips.
/// </summary>
/// <param name="parentControl">The parent control.</param>
/// <param name="anchorControl">The parent control.</param>
/// <param name="strMsg">The string MSG.</param>
/// <param name="location">The location.</param>
/// <param name="background">The background.</param>
......@@ -267,7 +267,7 @@ namespace HZH_Controls.Forms
/// <param name="blnTopMost">是否置顶</param>
/// <returns>FrmAnchorTips.</returns>
public static FrmAnchorTips ShowTips(
Control parentControl,
Control anchorControl,
string strMsg,
AnchorTipsLocation location = AnchorTipsLocation.RIGHT,
Color? background = null,
......@@ -275,22 +275,22 @@ namespace HZH_Controls.Forms
Size? deviation = null,
int fontSize = 10,
int autoCloseTime = 5000,
bool blnTopMost=true)
bool blnTopMost = true)
{
Point p;
if (parentControl is Form)
if (anchorControl is Form)
{
p = parentControl.Location;
p = anchorControl.Location;
}
else
{
p = parentControl.Parent.PointToScreen(parentControl.Location);
p = anchorControl.Parent.PointToScreen(anchorControl.Location);
}
if (deviation != null)
{
p = p + deviation.Value;
}
return ShowTips(new Rectangle(p, parentControl.Size), strMsg, location, background, foreColor, fontSize, autoCloseTime, parentControl.FindForm(),blnTopMost);
return ShowTips(new Rectangle(p, anchorControl.Size), strMsg, location, background, foreColor, fontSize, autoCloseTime, anchorControl.Parent, blnTopMost);
}
#endregion
......@@ -316,14 +316,47 @@ namespace HZH_Controls.Forms
Color? foreColor = null,
int fontSize = 10,
int autoCloseTime = 5000,
Form parentForm = null,
Control parentControl = null,
bool blnTopMost = true)
{
FrmAnchorTips frm = new FrmAnchorTips(rectControl, strMsg, location, background, foreColor, fontSize, autoCloseTime);
frm.TopMost = blnTopMost;
frm.Show(parentForm);
frm.Show(parentControl);
//if (parentControl != null)
//{
// parentControl.VisibleChanged += (a, b) =>
// {
// try
// {
// Control c = a as Control;
// if (CheckControlClose(c))
// {
// frm.Close();
// }
// }
// catch (Exception ex)
// {
// }
// };
//}
return frm;
}
private static bool CheckControlClose(Control c)
{
if (c.IsDisposed || !c.Visible)
return true;
else if (c.Parent != null)
return CheckControlClose(c.Parent);
else
{
if (c is Form)
return false;
else
return true;
}
}
#endregion
#region Override
......
......@@ -487,25 +487,10 @@ namespace HZH_Controls.Forms
/// </summary>
public enum TipsState
{
/// <summary>
/// The default
/// </summary>
Default = -1,
/// <summary>
/// The success
/// </summary>
Success = -6566849,
/// <summary>
/// The information
/// </summary>
Info = -12477983,
/// <summary>
/// The warning
/// </summary>
Warning = -357816,
/// <summary>
/// The error
/// </summary>
Default = -12542209,
Success = -9977286,
Info = -7299687,
Warning = -693140,
Error = -1097849
}
}
......@@ -46,6 +46,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Colors\BasisColors.cs" />
<Compile Include="Colors\ColorEnums.cs" />
<Compile Include="Colors\BorderColors.cs" />
<Compile Include="Colors\ColorExt.cs" />
<Compile Include="Colors\GradientColors.cs" />
<Compile Include="Colors\StatusColors.cs" />
<Compile Include="Controls\Charts\AuxiliaryLable.cs" />
<Compile Include="Controls\Charts\AuxiliaryLine.cs" />
<Compile Include="Controls\Charts\BarChart\BarChartItem.cs" />
......@@ -76,6 +82,27 @@
<Compile Include="Controls\GraphicalOverlay\GraphicalOverlayComponent.designer.cs">
<DependentUpon>GraphicalOverlayComponent.cs</DependentUpon>
</Compile>
<Compile Include="Controls\NavigationMenu\NavigationMenuItem.cs" />
<Compile Include="Controls\NavigationMenu\NavigationMenuItemBase.cs" />
<Compile Include="Controls\NavigationMenu\NavigationMenuItemExt.cs" />
<Compile Include="Controls\NavigationMenu\UCNavigationMenu.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\NavigationMenu\UCNavigationMenu.Designer.cs">
<DependentUpon>UCNavigationMenu.cs</DependentUpon>
</Compile>
<Compile Include="Controls\NavigationMenu\UCNavigationMenuExt.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\NavigationMenu\UCNavigationMenuExt.Designer.cs">
<DependentUpon>UCNavigationMenuExt.cs</DependentUpon>
</Compile>
<Compile Include="Controls\NavigationMenu\UCNavigationMenuOffice.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\NavigationMenu\UCNavigationMenuOffice.Designer.cs">
<DependentUpon>UCNavigationMenuOffice.cs</DependentUpon>
</Compile>
<Compile Include="Controls\Navigation\CrumbNavigationClickEventArgs.cs" />
<Compile Include="Controls\Navigation\CrumbNavigationItem.cs" />
<Compile Include="Controls\Sampling\UCSampling.cs">
......@@ -91,6 +118,22 @@
<Compile Include="Controls\Shadow\ShadowComponent.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\SplitLabel\UCSplitLabel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\TimeLine\UCTimeLine.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\TimeLine\UCTimeLine.Designer.cs">
<DependentUpon>UCTimeLine.cs</DependentUpon>
</Compile>
<Compile Include="Controls\Transfer\TransferEventArgs.cs" />
<Compile Include="Controls\Transfer\UCTransfer.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\Transfer\UCTransfer.Designer.cs">
<DependentUpon>UCTransfer.cs</DependentUpon>
</Compile>
<Compile Include="Controls\Verification\VerificationAttribute.cs" />
<Compile Include="Controls\Verification\VerificationComponent.cs">
<SubType>Component</SubType>
......@@ -331,6 +374,9 @@
<SubType>Component</SubType>
</Compile>
<Compile Include="Helpers\WindowsHook.cs" />
<Compile Include="Colors\LineColors.cs" />
<Compile Include="Colors\TableColors.cs" />
<Compile Include="Colors\TextColors.cs" />
<Compile Include="UIEditor\FrmSelectImage.cs">
<SubType>Form</SubType>
</Compile>
......@@ -686,6 +732,15 @@
<EmbeddedResource Include="Controls\Menu\UCMenuParentItem.resx">
<DependentUpon>UCMenuParentItem.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\NavigationMenu\UCNavigationMenu.resx">
<DependentUpon>UCNavigationMenu.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\NavigationMenu\UCNavigationMenuExt.resx">
<DependentUpon>UCNavigationMenuExt.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\NavigationMenu\UCNavigationMenuOffice.resx">
<DependentUpon>UCNavigationMenuOffice.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\Navigation\UCCrumbNavigation.resx">
<DependentUpon>UCCrumbNavigation.cs</DependentUpon>
</EmbeddedResource>
......@@ -731,6 +786,12 @@
<EmbeddedResource Include="Controls\Text\UCTextBoxEx.resx">
<DependentUpon>UCTextBoxEx.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\TimeLine\UCTimeLine.resx">
<DependentUpon>UCTimeLine.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\Transfer\UCTransfer.resx">
<DependentUpon>UCTransfer.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\UCControlBase.resx">
<DependentUpon>UCControlBase.cs</DependentUpon>
</EmbeddedResource>
......
......@@ -2,7 +2,7 @@
<package >
<metadata>
<id>$id$</id>
<version>1.0.6</version>
<version>1.0.7</version>
<title>HZHControls</title>
<authors>HuangZhengHui</authors>
<owners>HuangZhengHui</owners>
......
......@@ -63,6 +63,13 @@ namespace Test
tnControl.Nodes.Add("表单验证");
tnControl.Nodes.Add("图片采样控件");
tnControl.Nodes.Add("倒影");
tnControl.Nodes.Add("内置颜色");
tnControl.Nodes.Add("导航菜单");
tnControl.Nodes.Add("扩展导航菜单");
tnControl.Nodes.Add("类Office导航菜单");
tnControl.Nodes.Add("分割线标签");
tnControl.Nodes.Add("时间轴");
tnControl.Nodes.Add("穿梭框");
this.tvMenu.Nodes.Add(tnControl);
TreeNode tnCharts = new TreeNode(" 图表");
......@@ -97,6 +104,7 @@ namespace Test
{
panControl.Controls.Clear();
string strName = e.Node.Text.Trim();
this.Title = "控件DEMO--" + strName;
switch (strName)
{
#region 窗体 English:forms
......@@ -253,11 +261,32 @@ namespace Test
AddControl(new UC.UCTestVerification() { Dock = DockStyle.Fill });
break;
case "图片采样控件":
AddControl(new UC.UCTestSampling() );
AddControl(new UC.UCTestSampling());
break;
case "倒影":
AddControl(new UC.UCTestShadow());
break;
case "内置颜色":
AddControl(new UC.UCTestColors());
break;
case "导航菜单":
AddControl(new UC.UCTestNavigationMenu());
break;
case "扩展导航菜单":
AddControl(new UC.UCTestNavigationMenuExt());
break;
case "类Office导航菜单":
AddControl(new UC.UCTestNavigationMenuOffice());
break;
case "分割线标签":
AddControl(new UC.UCTestSplitLabel());
break;
case "时间轴":
AddControl(new UC.UCTestTimeLine() { Dock = DockStyle.Fill });
break;
case "穿梭框":
AddControl(new UC.UCTestTransfer());
break;
#endregion
#region 图表 English:Chart
......
......@@ -19,6 +19,12 @@ namespace Test
Application.ThreadException += Application_ThreadException;
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.Run(new FrmMain());
Application.ApplicationExit += Application_ApplicationExit;
}
static void Application_ApplicationExit(object sender, EventArgs e)
{
Console.WriteLine("程序退出成功");
}
......
......@@ -104,6 +104,12 @@
<Compile Include="UC\UCTestBlower.Designer.cs">
<DependentUpon>UCTestBlower.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestColors.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestColors.Designer.cs">
<DependentUpon>UCTestColors.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestConduit.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -206,6 +212,30 @@
<Compile Include="UC\UCTestMenu.Designer.cs">
<DependentUpon>UCTestMenu.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestNavigationMenu.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestNavigationMenu.Designer.cs">
<DependentUpon>UCTestNavigationMenu.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestNavigationMenuExt.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestNavigationMenuExt.Designer.cs">
<DependentUpon>UCTestNavigationMenuExt.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestNavigationMenuOffice.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestNavigationMenuOffice.Designer.cs">
<DependentUpon>UCTestNavigationMenuOffice.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestNavigationMenuOfficeItem.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestNavigationMenuOfficeItem.Designer.cs">
<DependentUpon>UCTestNavigationMenuOfficeItem.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestPage.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -266,6 +296,12 @@
<Compile Include="UC\UCTestSignalLamp.Designer.cs">
<DependentUpon>UCTestSignalLamp.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestSplitLabel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestSplitLabel.Designer.cs">
<DependentUpon>UCTestSplitLabel.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestStep.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -284,6 +320,12 @@
<Compile Include="UC\UCTestThermometer.Designer.cs">
<DependentUpon>UCTestThermometer.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestTimeLine.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestTimeLine.Designer.cs">
<DependentUpon>UCTestTimeLine.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestTips.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -296,6 +338,12 @@
<Compile Include="UC\UCTestTrackbar.Designer.cs">
<DependentUpon>UCTestTrackbar.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestTransfer.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UC\UCTestTransfer.Designer.cs">
<DependentUpon>UCTestTransfer.cs</DependentUpon>
</Compile>
<Compile Include="UC\UCTestTreeGridTable.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -371,6 +419,9 @@
<EmbeddedResource Include="UC\UCTestBtns.resx">
<DependentUpon>UCTestBtns.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestColors.resx">
<DependentUpon>UCTestColors.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestConduit.resx">
<DependentUpon>UCTestConduit.cs</DependentUpon>
</EmbeddedResource>
......@@ -419,6 +470,18 @@
<EmbeddedResource Include="UC\UCTestNavigation.resx">
<DependentUpon>UCTestNavigation.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestNavigationMenu.resx">
<DependentUpon>UCTestNavigationMenu.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestNavigationMenuExt.resx">
<DependentUpon>UCTestNavigationMenuExt.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestNavigationMenuOffice.resx">
<DependentUpon>UCTestNavigationMenuOffice.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestNavigationMenuOfficeItem.resx">
<DependentUpon>UCTestNavigationMenuOfficeItem.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestPage.resx">
<DependentUpon>UCTestPage.cs</DependentUpon>
</EmbeddedResource>
......@@ -449,6 +512,9 @@
<EmbeddedResource Include="UC\UCTestSignalLamp.resx">
<DependentUpon>UCTestSignalLamp.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestSplitLabel.resx">
<DependentUpon>UCTestSplitLabel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestStep.resx">
<DependentUpon>UCTestStep.cs</DependentUpon>
</EmbeddedResource>
......@@ -458,12 +524,18 @@
<EmbeddedResource Include="UC\UCTestThermometer.resx">
<DependentUpon>UCTestThermometer.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestTimeLine.resx">
<DependentUpon>UCTestTimeLine.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestTips.resx">
<DependentUpon>UCTestTips.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestTrackbar.resx">
<DependentUpon>UCTestTrackbar.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestTransfer.resx">
<DependentUpon>UCTestTransfer.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UC\UCTestTreeGridTable.resx">
<DependentUpon>UCTestTreeGridTable.cs</DependentUpon>
</EmbeddedResource>
......
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace Test.UC
{
[ToolboxItem(false)]
public partial class UCTestColors : UserControl
{
public UCTestColors()
{
InitializeComponent();
}
private void UCTestColors_Load(object sender, EventArgs e)
{
for (int i = 0; i < groupBox1.Controls.Count; i++)
{
groupBox1.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.StatusColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox2.Controls.Count; i++)
{
groupBox2.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.TextColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox3.Controls.Count; i++)
{
groupBox3.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.LineColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox4.Controls.Count; i++)
{
groupBox4.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.BasisColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox5.Controls.Count; i++)
{
groupBox5.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.TableColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox6.Controls.Count; i++)
{
groupBox6.Controls[i].BackColor = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.BorderColorsTypes)(i+1)))[0];
}
for (int i = 0; i < groupBox7.Controls.Count; i++)
{
groupBox7.Controls[i].Paint += UCTestColors_Paint;
}
}
void UCTestColors_Paint(object sender, PaintEventArgs e)
{
Control c = sender as Control;
int i = groupBox7.Controls.IndexOf(c);
Color[] cs = HZH_Controls.ColorExt.GetInternalColor(((HZH_Controls.GradientColorsTypes)(i+1)));
HZH_Controls.ControlHelper.SetGDIHigh(e.Graphics);
LinearGradientBrush lgb = new LinearGradientBrush(c.ClientRectangle, cs[0], cs[1], 20f);
e.Graphics.FillRectangle(lgb, c.ClientRectangle);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test.UC
{
[ToolboxItem(false)]
public partial class UCTestNavigationMenu : UserControl
{
public UCTestNavigationMenu()
{
InitializeComponent();
}
private void UCTestNavigationMenu_Load(object sender, EventArgs e)
{
}
private void ucNavigationMenu1_ClickItemed(object sender, EventArgs e)
{
if (ucNavigationMenu1.SelectItem != null)
{
HZH_Controls.Forms.FrmTips.ShowTipsSuccess(this.FindForm(), "点击了:" + ucNavigationMenu1.SelectItem.Text);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="navigationMenuItem14.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAE/SURBVDhPvVQ7TgMxFNwDBM5AzREQRRrECWipQ41Em1yA5A4RoqBOuT+tttiWLg1KQ0tHk4rM
mDHYL9by0SojjbR+M/Ps9XqdHQxt2x5VVTUGb8uyfCT5zBo12X6Huq6vwBeEP1KkRo/s/UBgZRv0cKVY
Gpj1ORHqJTOKx4BwFxjXwfOPZFZtPoHiCHwNTEQUwkd5ordpmlOMZyDhdWZHrhlRFMVZIJIL1tlE43fw
xJkFjB+kObKHJCdOQhHcSKI2hnmmoUPXdceY7M1kJpLdSpZGrCQlAf+l8XNLlpKTDbnRN5L3wBVbf9QQ
BfvKNMwlR4DGvyfyit+vnPgoZAdOZXHI8/wCtU3g+aL9KNGxwequJTmgdo4tuEd96z2G8bEhzMH+E/cO
tgeE4X49D5iGuxw8MOtw15fHoBfs/5FlOwpHvjJPjZU3AAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItem29.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAE/SURBVDhPvVQ7TgMxFNwDBM5AzREQRRrECWipQ41Em1yA5A4RoqBOuT+tttiWLg1KQ0tHk4rM
mDHYL9by0SojjbR+M/Ps9XqdHQxt2x5VVTUGb8uyfCT5zBo12X6Huq6vwBeEP1KkRo/s/UBgZRv0cKVY
Gpj1ORHqJTOKx4BwFxjXwfOPZFZtPoHiCHwNTEQUwkd5ordpmlOMZyDhdWZHrhlRFMVZIJIL1tlE43fw
xJkFjB+kObKHJCdOQhHcSKI2hnmmoUPXdceY7M1kJpLdSpZGrCQlAf+l8XNLlpKTDbnRN5L3wBVbf9QQ
BfvKNMwlR4DGvyfyit+vnPgoZAdOZXHI8/wCtU3g+aL9KNGxwequJTmgdo4tuEd96z2G8bEhzMH+E/cO
tgeE4X49D5iGuxw8MOtw15fHoBfs/5FlOwpHvjJPjZU3AAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItem44.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAE/SURBVDhPvVQ7TgMxFNwDBM5AzREQRRrECWipQ41Em1yA5A4RoqBOuT+tttiWLg1KQ0tHk4rM
mDHYL9by0SojjbR+M/Ps9XqdHQxt2x5VVTUGb8uyfCT5zBo12X6Huq6vwBeEP1KkRo/s/UBgZRv0cKVY
Gpj1ORHqJTOKx4BwFxjXwfOPZFZtPoHiCHwNTEQUwkd5ordpmlOMZyDhdWZHrhlRFMVZIJIL1tlE43fw
xJkFjB+kObKHJCdOQhHcSKI2hnmmoUPXdceY7M1kJpLdSpZGrCQlAf+l8XNLlpKTDbnRN5L3wBVbf9QQ
BfvKNMwlR4DGvyfyit+vnPgoZAdOZXHI8/wCtU3g+aL9KNGxwequJTmgdo4tuEd96z2G8bEhzMH+E/cO
tgeE4X49D5iGuxw8MOtw15fHoBfs/5FlOwpHvjJPjZU3AAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItem59.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAE/SURBVDhPvVQ7TgMxFNwDBM5AzREQRRrECWipQ41Em1yA5A4RoqBOuT+tttiWLg1KQ0tHk4rM
mDHYL9by0SojjbR+M/Ps9XqdHQxt2x5VVTUGb8uyfCT5zBo12X6Huq6vwBeEP1KkRo/s/UBgZRv0cKVY
Gpj1ORHqJTOKx4BwFxjXwfOPZFZtPoHiCHwNTEQUwkd5ordpmlOMZyDhdWZHrhlRFMVZIJIL1tlE43fw
xJkFjB+kObKHJCdOQhHcSKI2hnmmoUPXdceY7M1kJpLdSpZGrCQlAf+l8XNLlpKTDbnRN5L3wBVbf9QQ
BfvKNMwlR4DGvyfyit+vnPgoZAdOZXHI8/wCtU3g+aL9KNGxwequJTmgdo4tuEd96z2G8bEhzMH+E/cO
tgeE4X49D5iGuxw8MOtw15fHoBfs/5FlOwpHvjJPjZU3AAAAAElFTkSuQmCC
</value>
</data>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HZH_Controls.Controls;
namespace Test.UC
{
public partial class UCTestNavigationMenuExt : UserControl
{
public UCTestNavigationMenuExt()
{
InitializeComponent();
}
private void UCTestNavigationMenuExt_Load(object sender, EventArgs e)
{
foreach (var item in this.ucNavigationMenuExt1.Items)
{
Control panel1 = CreatePanel(this.ucNavigationMenuExt1.BackColor);
item.ShowControl = panel1;
}
this.ucNavigationMenuExt1.Items[0].ShowControl = null;
foreach (var item in this.ucNavigationMenuExt2.Items)
{
Control panel2 = CreatePanel(this.ucNavigationMenuExt2.BackColor);
item.ShowControl = panel2;
}
foreach (var item in this.ucNavigationMenuExt3.Items)
{
Control panel3 = CreatePanel(this.ucNavigationMenuExt3.BackColor);
item.ShowControl = panel3;
}
foreach (var item in this.ucNavigationMenuExt4.Items)
{
Control panel4 = CreatePanel(this.ucNavigationMenuExt4.BackColor);
item.ShowControl = panel4;
}
}
private Control CreatePanel(Color color)
{
UCControlBase c = new UCControlBase();
c.IsRadius = true;
c.ConerRadius = 5;
c.IsShowRect = true;
c.FillColor = color;
c.BackColor = Color.Transparent;
c.Size = new Size(130, 180);
Label lbl = new Label();
lbl.AutoSize = false;
lbl.Dock = DockStyle.Fill;
lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.Text = "这是一个自定义的弹出内容,你可以根据自己需求进行扩展\r\n"+Guid.NewGuid().ToString();
lbl.ForeColor = Color.White;
c.Controls.Add(lbl);
return c;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="navigationMenuItemExt1.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItemExt5.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItemExt9.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItemExt13.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HZH_Controls.Controls;
namespace Test.UC
{
public partial class UCTestNavigationMenuOffice : UserControl
{
public UCTestNavigationMenuOffice()
{
InitializeComponent();
}
private void UCTestNavigationMenuOffice_Load(object sender, EventArgs e)
{
foreach (NavigationMenuItemExt item in this.ucNavigationMenuOffice1.Items)
{
Control panel1 =new UCTestNavigationMenuOfficeItem( item.Text);
item.ShowControl = panel1;
}
this.ucNavigationMenuOffice1.ResetChildControl();
foreach (NavigationMenuItemExt item in this.ucNavigationMenuOffice2.Items)
{
Control panel1 = new UCTestNavigationMenuOfficeItem(item.Text);
item.ShowControl = panel1;
}
this.ucNavigationMenuOffice2.ResetChildControl();
foreach (NavigationMenuItemExt item in this.ucNavigationMenuOffice3.Items)
{
Control panel1 = new UCTestNavigationMenuOfficeItem(item.Text);
item.ShowControl = panel1;
}
this.ucNavigationMenuOffice3.ResetChildControl();
foreach (NavigationMenuItemExt item in this.ucNavigationMenuOffice4.Items)
{
Control panel1 = new UCTestNavigationMenuOfficeItem(item.Text);
item.ShowControl = panel1;
}
this.ucNavigationMenuOffice4.ResetChildControl();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="navigationMenuItemExt4.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
<data name="navigationMenuItemExt5.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAEGSURBVDhP7ZGxagJBFEX3A9JYBjtLgx9gIYRAsLKK/kSqFIKCyKbMD1jYpE8nyZJA2NmdnW0C
FpI/MKS3t8t58kxlsbOL3R64zHt35l12Z4Kakzjn2mmaXmhbHWPMo7X2B/XUqoYEivjKX0LnaheHoRHD
T9r+B6Im/it64xoudbsYSZIsGLQScgwUH2/I3jdreDjoA4N3DO6OgfRL+i31jR7xJ4qiBiGf6IureFa7
PAQN0UpE4FJtf/i9KwJeCBqjkPqedcLq8jxv6bFiMHjNoInjuKt9iB6k5nX71Gv2B9KXQgOnhPRYP9CG
+la3/ZFAeWVC9tQztcsjgeg9y7KOWjVnIwj+AISOvF76iy4mAAAAAElFTkSuQmCC
</value>
</data>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test.UC
{
public partial class UCTestNavigationMenuOfficeItem : UserControl
{
public UCTestNavigationMenuOfficeItem(string str)
{
InitializeComponent();
label1.Text = str;
}
}
}
......@@ -9,6 +9,7 @@ using System.Windows.Forms;
namespace Test.UC
{
[ToolboxItem(false)]
public partial class UCTestSampling : UserControl
{
public UCTestSampling()
......
namespace Test.UC
{
partial class UCTestSplitLabel
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ucSplitLabel8 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel4 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel7 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel3 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel6 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel2 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel5 = new HZH_Controls.Controls.UCSplitLabel();
this.ucSplitLabel1 = new HZH_Controls.Controls.UCSplitLabel();
this.SuspendLayout();
//
// ucSplitLabel8
//
this.ucSplitLabel8.Font = new System.Drawing.Font("微软雅黑", 22F);
this.ucSplitLabel8.LineColor = System.Drawing.Color.Blue;
this.ucSplitLabel8.Location = new System.Drawing.Point(18, 305);
this.ucSplitLabel8.MaximumSize = new System.Drawing.Size(0, 42);
this.ucSplitLabel8.MinimumSize = new System.Drawing.Size(150, 42);
this.ucSplitLabel8.Name = "ucSplitLabel8";
this.ucSplitLabel8.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel8.Size = new System.Drawing.Size(465, 42);
this.ucSplitLabel8.TabIndex = 0;
this.ucSplitLabel8.Text = "22号大小";
//
// ucSplitLabel4
//
this.ucSplitLabel4.Font = new System.Drawing.Font("微软雅黑", 8F);
this.ucSplitLabel4.LineColor = System.Drawing.Color.Blue;
this.ucSplitLabel4.Location = new System.Drawing.Point(18, 145);
this.ucSplitLabel4.MaximumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel4.MinimumSize = new System.Drawing.Size(150, 15);
this.ucSplitLabel4.Name = "ucSplitLabel4";
this.ucSplitLabel4.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel4.Size = new System.Drawing.Size(465, 15);
this.ucSplitLabel4.TabIndex = 0;
this.ucSplitLabel4.Text = "颜色分隔";
//
// ucSplitLabel7
//
this.ucSplitLabel7.Font = new System.Drawing.Font("微软雅黑", 18F);
this.ucSplitLabel7.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.ucSplitLabel7.Location = new System.Drawing.Point(18, 264);
this.ucSplitLabel7.MaximumSize = new System.Drawing.Size(0, 34);
this.ucSplitLabel7.MinimumSize = new System.Drawing.Size(150, 34);
this.ucSplitLabel7.Name = "ucSplitLabel7";
this.ucSplitLabel7.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel7.Size = new System.Drawing.Size(465, 34);
this.ucSplitLabel7.TabIndex = 0;
this.ucSplitLabel7.Text = "18号大小";
//
// ucSplitLabel3
//
this.ucSplitLabel3.Font = new System.Drawing.Font("微软雅黑", 8F);
this.ucSplitLabel3.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.ucSplitLabel3.Location = new System.Drawing.Point(18, 104);
this.ucSplitLabel3.MaximumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel3.MinimumSize = new System.Drawing.Size(150, 15);
this.ucSplitLabel3.Name = "ucSplitLabel3";
this.ucSplitLabel3.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel3.Size = new System.Drawing.Size(465, 15);
this.ucSplitLabel3.TabIndex = 0;
this.ucSplitLabel3.Text = "绿色分隔";
//
// ucSplitLabel6
//
this.ucSplitLabel6.Font = new System.Drawing.Font("微软雅黑", 12F);
this.ucSplitLabel6.LineColor = System.Drawing.Color.Red;
this.ucSplitLabel6.Location = new System.Drawing.Point(20, 223);
this.ucSplitLabel6.MaximumSize = new System.Drawing.Size(0, 23);
this.ucSplitLabel6.MinimumSize = new System.Drawing.Size(0, 23);
this.ucSplitLabel6.Name = "ucSplitLabel6";
this.ucSplitLabel6.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel6.Size = new System.Drawing.Size(463, 23);
this.ucSplitLabel6.TabIndex = 0;
this.ucSplitLabel6.Text = "12号大小";
//
// ucSplitLabel2
//
this.ucSplitLabel2.Font = new System.Drawing.Font("微软雅黑", 8F);
this.ucSplitLabel2.LineColor = System.Drawing.Color.Red;
this.ucSplitLabel2.Location = new System.Drawing.Point(18, 63);
this.ucSplitLabel2.MaximumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel2.MinimumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel2.Name = "ucSplitLabel2";
this.ucSplitLabel2.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel2.Size = new System.Drawing.Size(465, 15);
this.ucSplitLabel2.TabIndex = 0;
this.ucSplitLabel2.Text = "红色分隔";
//
// ucSplitLabel5
//
this.ucSplitLabel5.Font = new System.Drawing.Font("微软雅黑", 8F);
this.ucSplitLabel5.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(238)))), ((int)(((byte)(245)))));
this.ucSplitLabel5.Location = new System.Drawing.Point(18, 182);
this.ucSplitLabel5.MaximumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel5.MinimumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel5.Name = "ucSplitLabel5";
this.ucSplitLabel5.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel5.Size = new System.Drawing.Size(465, 15);
this.ucSplitLabel5.TabIndex = 0;
this.ucSplitLabel5.Text = "默认大小";
//
// ucSplitLabel1
//
this.ucSplitLabel1.Font = new System.Drawing.Font("微软雅黑", 8F);
this.ucSplitLabel1.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(238)))), ((int)(((byte)(245)))));
this.ucSplitLabel1.Location = new System.Drawing.Point(18, 22);
this.ucSplitLabel1.MaximumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel1.MinimumSize = new System.Drawing.Size(0, 15);
this.ucSplitLabel1.Name = "ucSplitLabel1";
this.ucSplitLabel1.Padding = new System.Windows.Forms.Padding(20, 0, 0, 0);
this.ucSplitLabel1.Size = new System.Drawing.Size(465, 15);
this.ucSplitLabel1.TabIndex = 0;
this.ucSplitLabel1.Text = "默认颜色";
//
// UCTestSplitLabel
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.ucSplitLabel8);
this.Controls.Add(this.ucSplitLabel4);
this.Controls.Add(this.ucSplitLabel7);
this.Controls.Add(this.ucSplitLabel3);
this.Controls.Add(this.ucSplitLabel6);
this.Controls.Add(this.ucSplitLabel2);
this.Controls.Add(this.ucSplitLabel5);
this.Controls.Add(this.ucSplitLabel1);
this.Name = "UCTestSplitLabel";
this.Size = new System.Drawing.Size(814, 426);
this.ResumeLayout(false);
}
#endregion
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel1;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel2;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel3;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel4;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel5;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel6;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel7;
private HZH_Controls.Controls.UCSplitLabel ucSplitLabel8;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test.UC
{
[ToolboxItem(false)]
public partial class UCTestSplitLabel : UserControl
{
public UCTestSplitLabel()
{
InitializeComponent();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace Test.UC
{
partial class UCTestTimeLine
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
HZH_Controls.Controls.TimeLineItem timeLineItem5 = new HZH_Controls.Controls.TimeLineItem();
HZH_Controls.Controls.TimeLineItem timeLineItem6 = new HZH_Controls.Controls.TimeLineItem();
HZH_Controls.Controls.TimeLineItem timeLineItem7 = new HZH_Controls.Controls.TimeLineItem();
HZH_Controls.Controls.TimeLineItem timeLineItem8 = new HZH_Controls.Controls.TimeLineItem();
this.ucTimeLine1 = new HZH_Controls.Controls.UCTimeLine();
this.SuspendLayout();
//
// ucTimeLine1
//
this.ucTimeLine1.AutoScroll = true;
this.ucTimeLine1.DetailsFont = new System.Drawing.Font("微软雅黑", 10F);
this.ucTimeLine1.DetailsForcolor = System.Drawing.Color.FromArgb(((int)(((byte)(144)))), ((int)(((byte)(147)))), ((int)(((byte)(153)))));
this.ucTimeLine1.Dock = System.Windows.Forms.DockStyle.Fill;
timeLineItem5.Details = "2019年07月发生了一件大事,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷" +
",咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,然后王二麻子他爹王咔嚓出生了。";
timeLineItem5.Title = "2019年07月";
timeLineItem6.Details = "2019年08月发生了一件大事,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷" +
",咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,然后王二麻子他爹王咔嚓出生了。";
timeLineItem6.Title = "2019年08月";
timeLineItem7.Details = "2019年09月发生了一件大事,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷" +
",咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,然后王二麻子他爹王咔嚓出生了。";
timeLineItem7.Title = "2019年09月";
timeLineItem8.Details = "2019年10月发生了一件大事,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷" +
",咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,咔嚓一声打了一个炸雷,然后王二麻子他爹王咔嚓出生了。";
timeLineItem8.Title = "2019年10月";
this.ucTimeLine1.Items = new HZH_Controls.Controls.TimeLineItem[] {
timeLineItem5,
timeLineItem6,
timeLineItem7,
timeLineItem8};
this.ucTimeLine1.LineColor = System.Drawing.Color.FromArgb(((int)(((byte)(144)))), ((int)(((byte)(147)))), ((int)(((byte)(153)))));
this.ucTimeLine1.Location = new System.Drawing.Point(0, 0);
this.ucTimeLine1.Name = "ucTimeLine1";
this.ucTimeLine1.Padding = new System.Windows.Forms.Padding(30, 0, 0, 0);
this.ucTimeLine1.Size = new System.Drawing.Size(768, 542);
this.ucTimeLine1.TabIndex = 0;
this.ucTimeLine1.TitleFont = new System.Drawing.Font("微软雅黑", 14F);
this.ucTimeLine1.TitleForcolor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(49)))), ((int)(((byte)(51)))));
//
// UCTestTimeLine
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.ucTimeLine1);
this.Name = "UCTestTimeLine";
this.Size = new System.Drawing.Size(768, 542);
this.ResumeLayout(false);
}
#endregion
private HZH_Controls.Controls.UCTimeLine ucTimeLine1;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test.UC
{
public partial class UCTestTimeLine : UserControl
{
public UCTestTimeLine()
{
InitializeComponent();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
namespace Test.UC
{
partial class UCTestTransfer
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ucTransfer1 = new HZH_Controls.Controls.UCTransfer();
this.SuspendLayout();
//
// ucTransfer1
//
this.ucTransfer1.BackColor = System.Drawing.Color.White;
this.ucTransfer1.LeftColumns = new HZH_Controls.Controls.DataGridViewColumnEntity[0];
this.ucTransfer1.LeftDataSource = new object[0];
this.ucTransfer1.Location = new System.Drawing.Point(22, 22);
this.ucTransfer1.Name = "ucTransfer1";
this.ucTransfer1.RightDataSource = new object[0];
this.ucTransfer1.Size = new System.Drawing.Size(451, 397);
this.ucTransfer1.TabIndex = 0;
//
// UCTestTransfer
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.ucTransfer1);
this.Name = "UCTestTransfer";
this.Size = new System.Drawing.Size(619, 573);
this.Load += new System.EventHandler(this.UCTestTransfer_Load);
this.ResumeLayout(false);
}
#endregion
private HZH_Controls.Controls.UCTransfer ucTransfer1;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HZH_Controls.Controls;
namespace Test.UC
{
[ToolboxItem(false)]
public partial class UCTestTransfer : UserControl
{
public UCTestTransfer()
{
InitializeComponent();
}
private void UCTestTransfer_Load(object sender, EventArgs e)
{
DataGridViewColumnEntity[] lstLeftCulumns = new DataGridViewColumnEntity[1];
lstLeftCulumns[0] = new DataGridViewColumnEntity() { DataField = "Value", HeadText = "列表一", TextAlign= ContentAlignment.MiddleLeft };
DataGridViewColumnEntity[] lstRightCulumns = new DataGridViewColumnEntity[1];
lstRightCulumns[0] = new DataGridViewColumnEntity() { DataField = "Value", HeadText = "列表二", TextAlign = ContentAlignment.MiddleLeft };
this.ucTransfer1.LeftColumns = lstLeftCulumns;
this.ucTransfer1.RightColumns = lstRightCulumns;
var lstItems = new TestModel[5];
for (int i = 0; i < 5; i++)
{
lstItems[i] = new TestModel() { Key = i, Value = "选择项" + i };
}
this.ucTransfer1.LeftDataSource = lstItems;
this.ucTransfer1.RightDataSource = new TestModel[0];
}
private class TestModel
{
public int Key { get; set; }
public string Value { get; set; }
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
......@@ -710,6 +710,25 @@ The control crops the effective work area according to the set drive to achieve
#### 47、Shadow
![输入图片说明](https://images.gitee.com/uploads/images/2019/0928/163958_cf233dc5_301547.png "dy.png")
#### 48、NavigationMenu
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/085904_b118d7cc_301547.png "cd.png")
![输入图片说明](https://images.gitee.com/uploads/images/2019/1011/112138_8b47726f_301547.png "cd.png")
![输入图片说明](https://images.gitee.com/uploads/images/2019/1012/105648_ac1ac7d0_301547.gif "1.gif")
#### 49、SplitLabelLine
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/110329_4d443363_301547.png "fgx.png")
#### 50、TimeLine
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/150312_c4211fcc_301547.png "sjz.png")
#### 51、TransferData
![输入图片说明](https://images.gitee.com/uploads/images/2019/1010/113134_99cfa388_301547.gif "1.gif")
#### The last words
Finally, please like to click on the stars, if there are other commonly used controls, you can leave a message.
......
......@@ -709,6 +709,24 @@ HZH_Controls.Forms.FrmAnchorTips.ShowTips(button1, "测试提示信息\nBOTTOM",
![输入图片说明](https://images.gitee.com/uploads/images/2019/0928/163958_cf233dc5_301547.png "dy.png")
#### 48、导航菜单
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/085904_b118d7cc_301547.png "cd.png")
![输入图片说明](https://images.gitee.com/uploads/images/2019/1011/112138_8b47726f_301547.png "cd.png")
![输入图片说明](https://images.gitee.com/uploads/images/2019/1012/105648_ac1ac7d0_301547.gif "1.gif")
#### 49、分隔标签线
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/110329_4d443363_301547.png "fgx.png")
#### 50、时间轴
![输入图片说明](https://images.gitee.com/uploads/images/2019/1009/150312_c4211fcc_301547.png "sjz.png")
#### 51、穿梭框
![输入图片说明](https://images.gitee.com/uploads/images/2019/1010/113134_99cfa388_301547.gif "1.gif")
#### 最后的话
最后,喜欢请点下stars,如果有其他一些什么常用的控件可以在留言哦
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!