设置文本框从 form1 到 form2 的可见性

发布于 2024-12-07 18:28:53 字数 432 浏览 0 评论 0原文

从其他表单中,我想设置此表单上文本框的可见性,但我不知道如何调用文本框并设置属性 Visible = false。

我尝试使用枚举,但仍然无法解决问题。我无法施放或做任何事情。那么我如何从 form1 到 form2 调用 textBox...

我正在使用 C# 和 CF 3.5,

public enum VnosTextBoxType
    {
        Ean, PredmetObravnave, Tse, Kolicina, EnotaMere, 
        Lokacija, Zapora, Sarza, SarzaDobavitelja, Datumod, 
        DatumDo 
    } 

这是我所有 TextBox 的名称。我的文本框名称如 txtEan、txtPredmetObravnave、..

From other Form i want to set visibility for textBoxes on this form but i down't know how to call TextBoxes and set property Visible = false.

I try with Enums but i still can't solve problem. I can not cast or do anything. So how can i call textBox From form1 to form2...

i am using C# and CF 3.5

public enum VnosTextBoxType
    {
        Ean, PredmetObravnave, Tse, Kolicina, EnotaMere, 
        Lokacija, Zapora, Sarza, SarzaDobavitelja, Datumod, 
        DatumDo 
    } 

this are names for all my TextBoxes. I have TextBoxes with names like txtEan, txtPredmetObravnave,..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

允世 2024-12-14 18:28:53

在 Form2 上编写这样的方法怎么样:

public void SetTBVisible(string name, bool visible)
{
    this.Controls[name].Visible = visible;
}

并将此表单称为您的 Form1?

编辑:

public void SetTBVisible(string name, bool visible)
{
    string cName = name.ToLower();
    foreach(Control c in this.Controls)
        if (c.Name.ToLower() == cName)
        {
            c.Visible = visible;
            break;
        }
}

What about writing on Form2 a method like this:

public void SetTBVisible(string name, bool visible)
{
    this.Controls[name].Visible = visible;
}

and call this form your Form1?

EDITED:

public void SetTBVisible(string name, bool visible)
{
    string cName = name.ToLower();
    foreach(Control c in this.Controls)
        if (c.Name.ToLower() == cName)
        {
            c.Visible = visible;
            break;
        }
}
昨迟人 2024-12-14 18:28:53

假设您想

在创建 form2 的实例时为 form1 的 textbox1 设置 Visible = false ,那么您已将 form1 的实例传递到其构造函数中,如下

Class Form1 : Form 
{
    public void setTextbox(bool val)
    {
       this.Textbox1.visible=val;
    }
    Public void showForm2()
    {
       Form2 f2= new Form2(this);
       f2.show();
    }        
}

Class Form2 : Form 
{
    Form1 f1;

    public Form2(Form form1)
    {
        f1=form1;
    }

    public void setTb()
    {
    f1.setTextbox(false);
    }

}

所示我希望这会对您有所帮助

let say you want to set Visible = false for textbox1 of form1

when you create instance of form2 then you have pass the instance of form1 into its constructor like this

Class Form1 : Form 
{
    public void setTextbox(bool val)
    {
       this.Textbox1.visible=val;
    }
    Public void showForm2()
    {
       Form2 f2= new Form2(this);
       f2.show();
    }        
}

Class Form2 : Form 
{
    Form1 f1;

    public Form2(Form form1)
    {
        f1=form1;
    }

    public void setTb()
    {
    f1.setTextbox(false);
    }

}

I Hope this will help you

我乃一代侩神 2024-12-14 18:28:53

创建一个名为 Globals.cs 的新类
写入:

    public static Form1 MainForm;
    public static Form2 ChildForm;

转到 Form1 并创建事件:表单加载
put:

Globals.MainWindow = this;

和:

CheckForIllegalCrossThreadCalls = false;

并在 Form2 中使用 ChildForm 执行相同操作
现在您可以使用以下命令调用 form2: Globals.ChildForm.TextBox1.Visible = false;

编辑:不要忘记公开您的文本框。

Make a new class called Globals.cs
write:

    public static Form1 MainForm;
    public static Form2 ChildForm;

go to Form1 and make the event: form load
put:

Globals.MainWindow = this;

and:

CheckForIllegalCrossThreadCalls = false;

and do the same in Form2 with ChildForm
now you can call form2 with: Globals.ChildForm.TextBox1.Visible = false;

Edit: don't forget to make your textBox public.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文