TF2SelectDir.txtTF2DirSelect.Text = "";
这给了我一些问题,因为txtTF2DirSelect在一个表单上,我正在尝试从另一个表单更改它。我试着查看,整个表格本身已经公开,而不是私密。
或者,为此,我如何创建一个可以在任何表单上访问的变量?
出错的地方
if (canFindTF2 == true)
{
TF2SelectDir.txtTF2DirSelect.Text = "";
TF2SelectDir的表格已经公开
public partial class TF2SelectDir : Form
{
public TF2SelectDir()
{
InitializeComponent();
}
有什么想法吗?谢谢!
更新
在TF2SelectDir.Designer.cs的底部,我找到了
private System.Windows.Forms.TextBox txtTF2DirSelect;
private System.Windows.Forms.Button btnSaveTF2Dir;
private System.Windows.Forms.Label lblExample;
但是,当我在txtTF2DirSelect上将private更改为public时,我收到了一个新错误。 “非静态字段,方法或属性'TF2SelectDir.txtTF2DirSelect'需要对象引用 - 错误代码CS0120
答案 0 :(得分:2)
由于我无法发表评论,我将此作为答案发布。
从单独的表单访问控件可能不是最好的主意。我建议你使用属性。 Here是Microsoft的属性定义和用法示例。
在我看来,在两种形式之间共享数据的另一种更好的方法是使用事件。再次,here是Microsoft对事件的描述。
如果你需要一个如何使用这些方法的工作示例,我希望先看看你的努力,然后我们可以在此基础上继续努力。
答案 1 :(得分:2)
以下方式曝光控制..为什么? @monstertjie_za已经提供了很少的好链接。
namespace TF2Overwatch
{
public partial class TF2SelectDir : Form
{
//Approch 1 - usable when the projects most works are done
//without following a good architecture
//You can use a static variable to preserve the state and intilize each time
//a new instance is created
//Approch 2 - Responibilty of preserving text to initlize in textbox should be taken
//by the form who calling this form
//value will pass by consturtor or by exposing property
//all approch 2 code are kept commented for better understanding
private static string strTxtTF2DirSelectTextToInitize;
public TF2SelectDir()
{
InitializeComponent();
txtTF2DirSelect.Text = strTxtTF2DirSelectTextToInitize;
}
public static string TxtTF2DirSelectTextToInitlize
{
get
{
return strTxtTF2DirSelectTextToInitize;
}
set
{
strTxtTF2DirSelectTextToInitize = value;
}
}
//public TF2SelectDir(string txtTF2DirSelectText)
//{
// InitializeComponent();
// txtTF2DirSelect.Text = txtTF2DirSelectText;
//}
//public string TxtTF2DirSelectTextToInitlize
//{
// get
// {
// return txtTF2DirSelect.Text;
// }
// set
// {
// txtTF2DirSelect.Text = value;
// }
//}
}
public partial class SomeAnotherForm:Form
{
public SomeAnotherForm ()
{
InitializeComponent();
}
protected void InSomeAction(object Sender, EventArgs e)
{
if (canFindTF2 == true)
{
TF2SelectDir.TxtTF2DirSelectText = "Test";
TF2SelectDir t1 = new TF2SelectDir();
t1.Show();
//Approch 2
//TF2SelectDir t1 = new TF2SelectDir("Test");
//t1.Show();
//TF2SelectDir t1 = new TF2SelectDir();
//t1.TxtTF2DirSelectText="Test"; //look here TxtTF2DirSelectText is setting on instance not by class
//t1.Show();
}
}
}
}