public void SelectItem(int nIndex) { ButtonBox.Item itPrevItem = null; ButtonBox.Item itCurrItem = null; m_dictMutex.WaitOne(); if (m_dictItems.ContainsKey(m_nCurrentSelected)) { itPrevItem = m_dictItems[m_nCurrentSelected].Clone(); } if (m_dictItems.ContainsKey(nIndex)) { itCurrItem = m_dictItems[nIndex].Clone(); m_nCurrentSelected = nIndex; } else { m_nCurrentSelected = -1; } m_dictMutex.ReleaseMutex(); Invalidate(); if (ItemSelected == null) { return; } ItemSelected(itPrevItem, itCurrItem, this); }
public void AddItem(ButtonBox.Item itButtonBoxItem) { if (itButtonBoxItem == null) { return; } m_dictMutex.WaitOne(); m_dictItems.Add(m_dictItems.Count, itButtonBoxItem.Clone()); m_dictMutex.ReleaseMutex(); Invalidate(); }
public ButtonBox.Item GetItem(int nIndex) { ButtonBox.Item obj = null; m_dictMutex.WaitOne(); if (m_dictItems.ContainsKey(nIndex)) { obj = m_dictItems[nIndex].Clone(); } m_dictMutex.ReleaseMutex(); return(obj); }
private void ButtonBox_MouseUp(object sender, MouseEventArgs e) { if (m_dictItems.Count <= 0) { return; } ButtonBox.Item itPrevItem = null; m_dictMutex.WaitOne(); float num = Height / (float)m_dictItems.Count; if (m_dictItems.ContainsKey(m_nCurrentSelected)) { itPrevItem = m_dictItems[m_nCurrentSelected].Clone(); } m_dictMutex.ReleaseMutex(); int key = (int)Math.Truncate(e.Y / (double)num); if (key < 0 || key >= m_dictItems.Count) { return; } m_dictMutex.WaitOne(); if (m_dictItems.ContainsKey(key)) { ButtonBox.Item itCurrItem = m_dictItems[key].Clone(); m_nCurrentSelected = key; Invalidate(); m_dictMutex.ReleaseMutex(); if (ItemSelected == null) { return; } ItemSelected(itPrevItem, itCurrItem, this); } else { m_dictMutex.ReleaseMutex(); } }
public void ClearItem() { ButtonBox.Item itPrevItem = null; m_dictMutex.WaitOne(); if (m_dictItems.ContainsKey(m_nCurrentSelected)) { itPrevItem = m_dictItems[m_nCurrentSelected].Clone(); } m_dictItems.Clear(); m_dictMutex.ReleaseMutex(); m_nCurrentSelected = -1; Invalidate(); if (ItemSelected == null) { return; } ItemSelected(itPrevItem, null, this); }