Added logic to allow a timer to refresh items which were not being positioned properly.

This commit is contained in:
Rich 2012-10-16 14:46:35 +00:00
parent 2a585b7ac5
commit 240265e070

View File

@ -228,6 +228,56 @@ namespace Volian.Controls.Library
} }
#endregion #endregion
#region Constructors #region Constructors
private Timer _RefreshTimer = null;
public Timer RefreshTimer
{
get
{
if (_RefreshTimer == null)
{
_RefreshTimer = new Timer();
_RefreshTimer.Tick += new EventHandler(_RefreshTimer_Tick);
}
_RefreshTimer.Enabled = false;
_RefreshTimer.Interval = 200;
_RefreshTimer.Enabled = true;
return _RefreshTimer;
}
}
void _RefreshTimer_Tick(object sender, EventArgs e)
{
_RefreshTimer.Enabled = false;
while (_RefreshList.Count > 0)
{
EditItem myEditItem = _RefreshList[0];
int newTop = myEditItem.Top;
_MyLog.InfoFormat("TimerTick {0}", myEditItem.MyItemInfo.ShortPath);
myEditItem.Top = newTop + 100;
Application.DoEvents();
myEditItem.Top = newTop;
_RefreshList.RemoveAt(0);
if (_SelectedEditItem != null && _SelectedEditItem.Bottom > Height)
ScrollControlIntoView(_SelectedEditItem);
}
}
private List<EditItem> _RefreshList;
public List<EditItem> RefreshList
{
get
{
if (_RefreshList == null)
_RefreshList = new List<EditItem>();
return _RefreshList;
}
}
public void AddToRefreshList(EditItem myEditItem)
{
if (!RefreshList.Contains(myEditItem))
{
RefreshList.Add(myEditItem);
RefreshTimer.Enabled = true;
}
}
public StepPanel() public StepPanel()
{ {
InitializeComponent(); InitializeComponent();