我正在尝试创建Microsoft记事本的副本,并且目前无法使用自动换行和状态栏。在记事本中通常发生的情况是,在切换自动换行时,它还会根据查看菜单中的“ 状态栏”选项的状态来切换状态栏可见性。
对于状态栏切换,我正在使用以下代码:
private void btnToggleStatusBar_Click(object sender, EventArgs e)
{
npExtStatusBar.Visible = !npExtStatusBar.Visible;
btnToggleStatusBar.Checked = npExtStatusBar.Visible;
FileStruct.StatusStripState = npExtStatusBar.Visible ? true : false;
}
此外,以下是自动换行单击事件的代码段:
private void btnWordWrap_Click(object sender, EventArgs e)
{
TypeArea.WordWrap = !TypeArea.WordWrap;
btnWordWrap.Checked = TypeArea.WordWrap;
}
我使用布尔状态StatusStripState作为WordWrap的标志,以了解状态栏的先前状态,但不能真正使其像Microsoft记事本那样工作。
编辑:它的行为就像是从视图选项中选中状态栏时,自动换行选项将在自动换行关闭时使状态栏再次可见。否则,它不会触摸状态条形码。
编辑:好的,所以我在某种程度上能够达到预期的效果,但是现在存在一个小问题,如果未从视图中启用状态栏,则自动换行不会禁用状态栏选项。
下面是我写的代码:
private void btnWordWrap_Click(object sender, EventArgs e)
{
TypeArea.WordWrap = !TypeArea.WordWrap;
btnWordWrap.Checked = TypeArea.WordWrap;
if (npExtStatusBar.Visible == true)
{
npExtStatusBar.Visible = false;
//btnToggleStatusBar.Checked = false;
btnToggleStatusBar.Enabled = false;
}
else
{
if (FileStruct.StatusStripState == true)
{
btnToggleStatusBar.Enabled = true;
npExtStatusBar.Visible = true;
}
else
{
btnToggleStatusBar.Enabled = true;
}
}