第三是:当选项卡相互切换时,也有一些事情要处理的,比如说在一个选项卡里未保存文本,保存按钮需要保持可用状态,但是当切换到另一个选项卡时可能它是已经保存的,保存按钮继续保持不可用状态,这需要一些判断和处理,当然还有其他一些操作:
private void target(object sender, EventArgs e)//窗口切换
{
//获得选项卡里的控件,r为RichTextBox,l1为路径栏,l2为保存提示栏
if (l2 != null)
{
if (l2.Text == "已保存" || l2.Text == "打开")
{
保存SToolStripMenuItem.Enabled = false;
toolStripButton3.Enabled = false;
}
else
{
保存SToolStripMenuItem.Enabled = true;
toolStripButton3.Enabled = true;
}
if (fc > 0) 查找下一个NToolStripMenuItem.Enabled = true;
else 查找下一个NToolStripMenuItem.Enabled = false;
if (r.CanUndo) 撤消ToolStripMenuItem.Enabled = true;
else 撤消ToolStripMenuItem.Enabled = false;
}
if(l1!=null&&l2!=null)
{
if (隐藏路径ToolStripMenuItem.Checked == true) l1.Hide();
else l1.Show();
if (隐藏保存提示栏ToolStripMenuItem.Checked == true) l2.Hide();
else l2.Show();
}
}
第四是:当选项卡关闭时也有一些处理,比如说文本没有保存的话要给用户一个保存修改的机会,要实现像遨游那样双击可以关闭,我设置了双击函数,并且选项卡的右键菜单的关闭选项的处理也直接使用这个双击函数,主要实现关闭选项卡的功能,但是为了使用户操作,我至少要有一个选项卡留在窗口不能关闭,所以最后一个选项卡不能关闭的:
void tabControl1_DoubleClick(object sender, EventArgs e)
{
//获得选项卡里的控件,r为RichTextBox,l1为路径栏,l2为保存提示栏
if (m > 1)
{//当窗口数量 m > 1 时才执行关闭功能
if (l2.Text == "已保存" || l2.Text == "打开")
{ tabControl1.SelectedTab.Dispose(); m--; }
else { string message, title; DialogResult result;//文本需要保存时要给出提示信息对话框
message = "窗口正在关闭 \n\n但是文本未被保存 !\n\n是不是执行保存?";
title = "提醒你";
button = MessageBoxButtons.YesNoCancel;
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证C多文本编辑器考试报告(4)全文阅读和word下载服务。
相关推荐: