WinForm工具栏添加刷新、关闭、关闭全部、除此之外关闭的代码
2015-03-08 17:25:31 访问(1669) 赞(0) 踩(0)
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
RefleshCtrl();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
FormTitleClose();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 关闭所有ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
FormTitleCloseAll();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 除此之外全部关闭ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
FormTitleCloseOthers();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
/// <summary>
/// 刷新
/// </summary>
public void RefleshCtrl()
{
UserControl uc = new MainList();
if (uc == null)
return;
uc.Dock = DockStyle.Fill;
Control pCtrl = this.Parent;
pCtrl.Controls.Clear();
pCtrl.Controls.Add(uc);
}
/// <summary>
/// 获得TabControl
/// </summary>
/// <returns></returns>
public TabPage GetTabPage(Control cItem)
{
while (true)
{
if (cItem.Parent == null)
break;
if (cItem.Parent is TabPage)
return cItem.Parent as TabPage;
cItem = cItem.Parent;
}
return null;
}
/// <summary>
/// 获得TabControl
/// </summary>
/// <returns></returns>
public TabControl GetTabControl(Control cItem)
{
while (true)
{
if (cItem.Parent == null)
break;
if (cItem.Parent is TabControl)
return cItem.Parent as TabControl;
cItem = cItem.Parent;
}
return null;
}
/// <summary>
///
/// </summary>
protected void FormTitleClose()
{
TabPage tp = GetTabPage(this);
if (tp == null)
{
Form theForm = this.FindForm();
if (theForm != null)
theForm.Close();
return;
}
TabControl tabCtrl = GetTabControl(tp);
if (tabCtrl != null)
tabCtrl.TabPages.Remove(tp);
}
/// <summary>
///
/// </summary>
protected void FormTitleCloseAll()
{
TabPage tp = GetTabPage(this);
if (tp == null)
return;
TabControl tabCtrl = GetTabControl(tp);
if (tabCtrl == null)
return;
int iCount = tabCtrl.TabPages.Count;
tp = null;
for (int j = iCount - 1; j >= 0; --j)
{
tp = tabCtrl.TabPages[j];
if (tp == null)
continue;
if (tp.Tag != null && tp.Tag.ToString() == "0")
continue;
tabCtrl.TabPages.RemoveAt(j);
tp.Dispose();
}
}
/// <summary>
///
/// </summary>
protected void FormTitleCloseOthers()
{
TabPage tpCur = GetTabPage(this);
if (tpCur == null)
return;
TabControl tabCtrl = GetTabControl(tpCur);
if (tabCtrl == null)
return;
int iCount = tabCtrl.TabPages.Count;
TabPage tp = null;
for (int j = iCount - 1; j >= 0; --j)
{
tp = tabCtrl.TabPages[j];
if (tp == null)
continue;
if (tp == tpCur)
continue;
if (tp.Tag != null && tp.Tag.ToString() == "0")
continue;
tabCtrl.TabPages.RemoveAt(j);
tp.Dispose();
}
}
上一条:
下一条:
相关评论
发表评论