cemu-DS4Windows/DS4Windows/DS4Forms/AdvancedComboBox.cs

94 lines
2.5 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ScpServer
{
[System.ComponentModel.DesignerCategory("")]
public class AdvancedComboBox : ComboBox
{
public Label Label { get; set; }
public AdvancedComboBox()
{
base.Visible = false;
Label = new Label();
Label.Tag = this;
Label.ForeColor = Color.Blue;
Label.TextAlign = ContentAlignment.MiddleCenter;
Label.BackColor = Color.Transparent;
Label.MouseDown += Label_MouseDown;
}
public Color Color
{
get
{
return Label.ForeColor;
}
set
{
Label.ForeColor = value;
}
}
public new bool Visible
{
get
{
return Label.Visible;
}
set
{
Label.Visible = value;
}
}
private void Label_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
DroppedDown = true;
}
protected override void OnParentChanged(EventArgs e)
{
base.OnParentChanged(e);
if (Parent != null)
{
Label.Location = this.Location;
Label.Size = this.Size;
Label.Dock = this.Dock;
Label.Anchor = this.Anchor;
Label.Enabled = this.Enabled;
Label.Visible = this.Visible;
Label.RightToLeft = this.RightToLeft;
Label.Font = this.Font;
Label.Text = this.Text
.Replace("Right Click", "Right-Click")
.Replace(" Button", string.Empty)
.Replace("Left ", string.Empty)
.Replace("Right ", string.Empty);
Label.TabStop = this.TabStop;
Label.TabIndex = this.TabIndex;
}
Label.Parent = this.Parent;
}
protected override void OnSelectedIndexChanged(EventArgs e)
{
base.OnSelectedIndexChanged(e);
Label.Text = this.Text
.Replace("Right Click", "Right-Click")
.Replace(" Button", string.Empty)
.Replace("Left ", string.Empty)
.Replace("Right ", string.Empty);
}
}
}