0

今天记一个问题,在c#winform程序中。

如果有表格 A表格 B;表格 B 有一个文本框(需要只读)

Form A 代码如下:

B b = new B("FormB");
b.Show();

FormB 代码如下:

情况1:

public B(string str)
{
   this.textbox1.text = str;

   this.textbox1.Enable = false;
}

我将该程序部署到客户服务器,但是textbox1.text = "", 没有任何价值,但它可以在我的本地计算机上运行。

我试试这个:

情况2:

public B(string str)
{
    this.textbox1.text = str;

    this.textbox1.ReadOnly = true;        
}

然后texbox1.text = "FormB";它可以在我的本地计算机和客户服务器上运行。

关键和重要的问题是,为什么情况1可以在我的本地计算机上运行,​​而不能在客户服务器上运行?

谁能告诉这是为什么?

4

3 回答 3

2

让我看看我对你的理解是否正确,你问为什么TextBox当你使用ReadOnly = true不是 Enabled = false更新时,上面的文字会更新?


如果是这样,我想这是设计使然。

来自 MSDN:TextBoxBase.ReadOnly 属性

当此属性设置为 true 时,用户无法在运行时更改控件的内容。将此属性设置为 true 后,您仍然可以在代码中设置 Text 属性的值。您可以使用此功能而不是禁用具有 Enabled 属性的控件,以允许复制内容并显示工具提示。

于 2012-10-12T12:35:38.453 回答
1

已经提出并回答了类似的问题......这是我提供的一些示例

One Sample
Another using properties and methods to expose / exchange data -- almost step by step sample

于 2012-10-12T12:35:43.857 回答
0

您需要InitializeComponent()在您的构造函数中拥有 - 与空白构造函数相同。

http://www.dotnetperls.com/initializecomponent

于 2012-10-12T12:27:40.530 回答