// ***********************************************************************
// 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);
}
}
}
}