如何设置和获取文本框控件?

时间:2018-12-21 15:56:37

标签: c# controls

我想将TextBox中的Form1的值传递给另一个类。

我尝试设置并获取,但是我不能这样做,因为VS向我显示了有关代码歧义的错误。

public partial class Form1 : Form
{
    private TextBox _textBox1;

    public Form1()
    {
        this._textBox1 = textBox1;
        InitializeComponent();
    }

    public string _textBox1
    {
        get { return _textBox1.Text; }
        set { _textBox1.Text = value; }
    }
}

如何使此正确?我的控制权是私人的。

3 个答案:

答案 0 :(得分:2)

您的类中有一个具有相同名称的字段和一个属性,请将属性的名称更改为

    public string FormTextBox1
    {
        get { return _textBox1.Text; }
        set { _textBox1.Text = value; }
    }

作为命名标准,公共属性必须为Pascal Case表示法

Capitalization Conventions

答案 1 :(得分:0)

您可以将textBox1.Text传递给变量,并为其进行getter / setter。

赞:

public class A : Form1
{
    // assuming it's a string. If it's not, change the type
    // for the getter method below accordingly
    private string textBoxValue;

    // at some point, you'll have to make this line below:
    textBoxValue = textBox1.Value;

    public string GetTextBoxValue()
    {
        return textBoxValue;
    }
}

public class B 
{
    A aReference = new A();

   // you can get the value you want by doing
   // aReference.GetTextBoxValue();
}

答案 2 :(得分:0)

    public void yourFormLoadMethod()
    {
        //this instantiates a new object of your class
        nameOfYourClass newYourObject = new nameOfYourClass(//put any params you need here);

        txtNameOfYourTextBox.DataBindings.Add("Enabled", newLTDObjectBenInt, "YourTextBoxEnabled", true, DataSourceUpdateMode.OnPropertyChanged);
        txtNameOfYourTextBox.DataBindings.Add("Value", newLTDObjectBenInt, "YourTextBoxEntered", true, DataSourceUpdateMode.OnPropertyChanged);
        txtNameOfYourTextBox.DataBindings.Add("Visible", newLTDObjectBenInt, "YourTextBoxVisible", true, DataSourceUpdateMode.OnPropertyChanged);
    }

    public class nameOfYourClass
    {

        //constructor
        public nameOfYourClass(//same params here from the Load method)
        {
            //place any logic that you need here to load your class properly

            //this sets default values for Enable, Visible and the text
            //you use these fields to manipulate your field as you wish
            yourTextBoxVisible = true;
            yourTextBoxEnabled = true;
            yourTextBoxEntered = "this is the default text in my textbox";
        }

        private bool yourTextBoxEnabled;
        public bool YourTextBoxEnabled
        {
            get
            {
                return yourTextBoxEnabled;
            }
            set
            {
                yourTextBoxEnabled = value;
            }
        }
        private bool yourTextBoxVisible;
        public bool YourTextBoxVisible
        {
            get
            {
                return yourTextBoxVisible;
            }
            set
            {
                yourTextBoxVisible = value;
            }
        }
        private string yourTextBoxEntered;
        public string YourTextBoxEntered
        {
            get
            {
                return yourTextBoxEntered;
            }
            set
            {
                yourTextBoxEntered = value;
            }
        }
    }