* UIListBox:增加Items变更的事件
This commit is contained in:
parent
0aad9b54ee
commit
1408316ed6
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -42,13 +42,14 @@ namespace Sunny.UI
|
||||
ListBox.DisplayMemberChanged += Box_DisplayMemberChanged;
|
||||
ListBox.ValueMemberChanged += Box_ValueMemberChanged;
|
||||
ListBox.SelectedValueChanged += ListBox_SelectedValueChanged;
|
||||
ListBox.ItemsCountChange += ListBox_ItemsCountChange;
|
||||
ListBox.ItemsClear += ListBox_ItemsClear;
|
||||
ListBox.ItemsRemove += ListBox_ItemsRemove;
|
||||
edit.TextChanged += Edit_TextChanged;
|
||||
DropDownWidth = 150;
|
||||
fullControlSelect = true;
|
||||
}
|
||||
|
||||
private void ListBox_ItemsCountChange(object sender, EventArgs e)
|
||||
private void ListBox_ItemsRemove(object sender, EventArgs e)
|
||||
{
|
||||
if (ListBox.Count == 0)
|
||||
{
|
||||
@ -57,6 +58,12 @@ namespace Sunny.UI
|
||||
}
|
||||
}
|
||||
|
||||
private void ListBox_ItemsClear(object sender, EventArgs e)
|
||||
{
|
||||
Text = "";
|
||||
edit.Text = "";
|
||||
}
|
||||
|
||||
public new EventHandler TextChanged;
|
||||
|
||||
private void Edit_TextChanged(object sender, EventArgs e)
|
||||
|
@ -66,14 +66,44 @@ namespace Sunny.UI
|
||||
listbox.MouseDown += Listbox_MouseDown;
|
||||
listbox.MouseUp += Listbox_MouseUp;
|
||||
listbox.MouseMove += Listbox_MouseMove;
|
||||
ListBox.DataSourceChanged += Box_DataSourceChanged;
|
||||
ListBox.DisplayMemberChanged += Box_DisplayMemberChanged;
|
||||
ListBox.ValueMemberChanged += Box_ValueMemberChanged;
|
||||
listbox.DataSourceChanged += Box_DataSourceChanged;
|
||||
listbox.DisplayMemberChanged += Box_DisplayMemberChanged;
|
||||
listbox.ValueMemberChanged += Box_ValueMemberChanged;
|
||||
listbox.ItemsClear += Listbox_ItemsClear;
|
||||
listbox.ItemsAdd += Listbox_ItemsAdd;
|
||||
listbox.ItemsRemove += Listbox_ItemsRemove;
|
||||
listbox.ItemsInsert += Listbox_ItemsInsert;
|
||||
|
||||
timer.Tick += Timer_Tick;
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
public event EventHandler ItemsClear;
|
||||
public event EventHandler ItemsAdd;
|
||||
public event EventHandler ItemsRemove;
|
||||
public event EventHandler ItemsInsert;
|
||||
|
||||
private void Listbox_ItemsInsert(object sender, EventArgs e)
|
||||
{
|
||||
ItemsInsert?.Invoke(this, e);
|
||||
}
|
||||
|
||||
private void Listbox_ItemsRemove(object sender, EventArgs e)
|
||||
{
|
||||
ItemsRemove?.Invoke(this, e);
|
||||
}
|
||||
|
||||
private void Listbox_ItemsAdd(object sender, EventArgs e)
|
||||
{
|
||||
ItemsAdd?.Invoke(this, e);
|
||||
}
|
||||
|
||||
|
||||
private void Listbox_ItemsClear(object sender, EventArgs e)
|
||||
{
|
||||
ItemsClear?.Invoke(this, e);
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public ListBox ListBox => listbox;
|
||||
|
||||
@ -460,6 +490,44 @@ namespace Sunny.UI
|
||||
SetScrollInfo();
|
||||
}
|
||||
|
||||
public event EventHandler ItemsClear;
|
||||
public event EventHandler ItemsAdd;
|
||||
public event EventHandler ItemsRemove;
|
||||
public event EventHandler ItemsInsert;
|
||||
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
if (IsDisposed || Disposing) return;
|
||||
if (IsHandleCreated)
|
||||
{
|
||||
const int LB_ADDSTRING = 0x0180;
|
||||
const int LB_INSERTSTRING = 0x0181;
|
||||
const int LB_DELETESTRING = 0x0182;
|
||||
const int LB_RESETCONTENT = 0x0184;
|
||||
if (m.Msg == LB_RESETCONTENT)
|
||||
{
|
||||
ItemsClear?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
if (m.Msg == LB_DELETESTRING)
|
||||
{
|
||||
ItemsRemove?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
if (m.Msg == LB_ADDSTRING)
|
||||
{
|
||||
ItemsAdd?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
if (m.Msg == LB_INSERTSTRING)
|
||||
{
|
||||
ItemsInsert?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
protected override void OnSizeChanged(EventArgs e)
|
||||
{
|
||||
if (Bar != null && Bar.Visible)
|
||||
|
Loading…
x
Reference in New Issue
Block a user