📄 ch9_demoform001.cs
字号:
if (item is ToolStripMenuItem)
{
ToolStripMenuItem itemObject = (ToolStripMenuItem)(item);
itemObject.Checked = false;
}
}
ToolStripMenuItem selectedItem = (ToolStripMenuItem)(sender);
selectedItem.Checked = true;
}
private void tsmiAddOption_Click(object sender, EventArgs e)
{
AddOption();
}
private void tsmiRemoveOption_Click(object sender, EventArgs e)
{
ToolStripMenuItem itemToRemove = null;
// 只有在「核取清单」菜单的下拉菜单有三个以上的菜单项目时(也就
// 是至少内含一个额外新增的菜单项目时),才进行移除菜单项目的作
// 业(移除最后一个菜单项目)。
if (tsmiCheckedList.DropDownItems.Count > 3)
{
// 取得最后一个菜单项目。
itemToRemove = (ToolStripMenuItem)(tsmiCheckedList.DropDownItems[tsmiCheckedList.DropDownItems.Count - 1]);
// 取得最后一个菜单项目的位置。
int removeAt = tsmiCheckedList.DropDownItems.Count - 1;
// 如果要被移除的菜单项目已被核取,而且在将此菜单项目移除之后
// 还有其它额外新增的菜单项目的话,就将剩余之菜单项目的最后一个
// 核取起来。
if (itemToRemove.Checked && tsmiCheckedList.DropDownItems.Count > 4)
{
ToolStripMenuItem itemToCheck = (ToolStripMenuItem)(tsmiCheckedList.DropDownItems[tsmiCheckedList.DropDownItems.Count - 2]);
itemToCheck.Checked = true;
}
// 别忘了要从「核取清单」菜单的下拉菜单中将菜单项目移除。
tsmiCheckedList.DropDownItems.RemoveAt(removeAt);
}
}
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ToolStripComboBox combo = (ToolStripComboBox)(sender);
switch (combo.SelectedIndex)
{
case 0:
MenuStrip1.Dock = DockStyle.Top;
break;
case 1:
MenuStrip1.Dock = DockStyle.Bottom;
break;
case 2:
MenuStrip1.Dock = DockStyle.Left;
MenuStrip1.Width = 50;
break;
case 3:
MenuStrip1.Dock = DockStyle.Right;
MenuStrip1.Width = 50;
break;
default:
MenuStrip1.Dock = DockStyle.Top;
break;
}
}
private void tsmiDockStyle_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsmi = (ToolStripMenuItem)(sender);
switch (tsmi.Name)
{
case "tsmiDockTop":
MenuStrip1.Dock = DockStyle.Top;
break;
case "tsmiDockBottom":
MenuStrip1.Dock = DockStyle.Bottom;
break;
case "tsmiDockLeft":
MenuStrip1.Dock = DockStyle.Left;
MenuStrip1.Width = 50;
break;
case "tsmiDockRight":
MenuStrip1.Dock = DockStyle.Right;
MenuStrip1.Width = 50;
break;
default:
MenuStrip1.Dock = DockStyle.Top;
break;
}
}
// 此事件处理例程会负责处理 tsmiColorOption1、tsmiColorOption2、tsmiColorOption3
// 、tsmiBlue、tsmiRed 与 tsmiGreen 这六个 ToolStripMenuItem 对象的 Click 事件。
private void DropDownColorItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = (ToolStripMenuItem)(sender);
switch (menuItem.Name)
{
case "Blue":
case "tsmiBlue":
this.BackColor = Color.Blue;
break;
case "Red":
case "tsmiRed":
this.BackColor = Color.Red;
break;
case "Green":
case "tsmiGreen":
this.BackColor = Color.Green;
break;
}
this.tsbDateTime.BackColor = System.Drawing.SystemColors.Control;
}
private void ColorButton_Click(object sender, EventArgs e)
{
ToolStripButton button = (ToolStripButton)(sender);
switch (button.Name)
{
case "Blue":
this.BackColor = Color.Blue;
break;
case "Red":
this.BackColor = Color.Red;
break;
case "Green":
this.BackColor = Color.Green;
break;
}
this.tsbDateTime.BackColor = System.Drawing.SystemColors.Control;
}
private void SplitButton_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
this.tsbDateTime.BackColor = System.Drawing.SystemColors.Control;
}
private void tsmiStatusStrip_Click(object sender, EventArgs e)
{
if (tsmiStatusStrip.Checked)
{
MainStatusStrip.Visible = true;
}
else
{
MainStatusStrip.Visible = false;
}
}
private void myLinkLabel_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("IExplore.exe", ((ToolStripLabel)(sender)).Text);
}
private void changeOpacityToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = (ToolStripMenuItem)(sender);
double opacity = Convert.ToDouble(menuItem.Tag.ToString());
this.Opacity = opacity;
// 透明度是彼此互斥的,请确认只有目前的设定被核取。
ToolStripMenuItem menuChangeOpacity = (ToolStripMenuItem)(tsmiOptions.DropDownItems[1]);
foreach (ToolStripMenuItem item in menuChangeOpacity.DropDownItems)
{
item.Checked = false;
}
menuItem.Checked = true;
}
private void tsmiUpdateProgressBar_Click(object sender, EventArgs e)
{
// 使用一个循环来模拟一个长时间的工作并使状态列中的进度列控件显示出进度。
while (ToolStripProgressBar1.Value < ToolStripProgressBar1.Maximum)
{
System.Threading.Thread.Sleep(10);
ToolStripProgressBar1.Value += 1;
}
// 重新设定进度列控件。
ToolStripProgressBar1.Value = ToolStripProgressBar1.Minimum;
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -