复制记事本自动换行行为

时间:2020-08-03 08:07:14

标签: c# winforms

我正在尝试创建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;
        }                
    }

0 个答案:

没有答案