// *********************************************************************** // Assembly : HZH_Controls // Created : 08-08-2019 // // *********************************************************************** // // Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com // // // 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; using HZH_Controls; namespace KS_Controls.Controls { /// /// Class UCHorizontalListItem. /// Implements the /// /// [ToolboxItem(false)] public partial class KSHorizontalListItem : UserControl { /// /// Occurs when [selected item]. /// public event EventHandler SelectedItem; /// /// The data source /// private KeyValuePair _DataSource = new KeyValuePair(); /// /// Gets or sets the data source. /// /// The data source. public KeyValuePair DataSource { get { return _DataSource; } set { _DataSource = value; var g = lblTitle.CreateGraphics(); int intWidth = ControlHelper.GetStringWidth(value.Value, g, lblTitle.Font); g.Dispose(); //if (intWidth < 50) // intWidth = 50; this.Width = intWidth + 8; lblTitle.Text = value.Value; SetSelect(false); } } private Color selectedColor = Color.FromArgb(255, 77, 59); public Color SelectedColor { get { return selectedColor; } set { selectedColor = value; } } /// /// Initializes a new instance of the class. /// public KSHorizontalListItem() { InitializeComponent(); this.Dock = DockStyle.Right; this.MouseDown += Item_MouseDown; this.lblTitle.MouseDown += Item_MouseDown; } /// /// Handles the MouseDown event of the Item control. /// /// The source of the event. /// The instance containing the event data. void Item_MouseDown(object sender, MouseEventArgs e) { if (SelectedItem != null) SelectedItem(this, e); } /// /// Sets the select. /// /// if set to true [BLN]. public void SetSelect(bool bln) { if (bln) { lblTitle.ForeColor = selectedColor; this.lblTitle.Padding = new Padding(0, 0, 0, 0); } else { lblTitle.ForeColor = Color.FromArgb(64, 64, 64); this.lblTitle.Padding = new Padding(0, 0, 0, 0); } } } }