通过ContextMenuStrip使文本框可编辑 - c#winform

时间:2017-12-07 02:41:40

标签: c# winforms textbox contextmenustrip

我的C#Winform中有一个文本框。默认情况下,程序会为文本框分配值。

我希望用户具有右键单击功能,以便在运行时编辑此文本。因此,当用户右键单击进行编辑时,背景应该变为白色,用户应该能够编辑文本。编辑后,背景应返回默认值且不可编辑

我创建了一个带有右键单击事件的ContextMenuStrip来编辑文本,如下所示,当用户右键单击并按下编辑菜单项时,将readonly属性指定为false:

private void editTextToolStripMenuItem_Click(object sender, EventArgs e)
{
    itxt_CommonTitle.ReadOnly = false;
}

我不确定如何继续进行。这可以使用文本框吗?

2 个答案:

答案 0 :(得分:1)

我认为你错过了一个过程。编辑后,应该有更新或保存方法。

  1. textbox readonly = true;
  2. 编辑文本框:textbox readonly = false;
  3. 按钮保存:textbox readonyl = true;
  4. 编辑: 像这样:

        private void buttonSave_Click(object sender, EventArgs e)
        {
            textBox1.ReadOnly = true;
        }
    
        private void editToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.ReadOnly = false;
        }
    

    你不需要改变backColor,只需readonly prop就可以了。

答案 1 :(得分:1)

如果您未更改设计器中BackColor的{​​{1}},那么当您设置TextBox并从灰色更改为白色时,背景颜色应自动从白色变为灰色当你设置ReadOnly = true时。但是,如果您已将其更改为设计器中的其他内容,则最简单的方法是在启用控件进行编辑之前设置一个私有变量以记住原始ReadOnly = false。然后,您可以在将其设置为只读后恢复颜色。

BackColor