Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建包含文本框数组的C#类?_C#_Arrays_Class_Textbox_Vb.net To C# - Fatal编程技术网

如何创建包含文本框数组的C#类?

如何创建包含文本框数组的C#类?,c#,arrays,class,textbox,vb.net-to-c#,C#,Arrays,Class,Textbox,Vb.net To C#,为了在VB.NET中实现这一点,我编写了以下代码: 公共类TBdata Public txtBox()作为TextBox={Form1.TextBox1,Form1.TextBox2,Form1.TextBox3,Form1.TextBox4} 公共ATextBox(3)作为字符串 公共子数据阵列() 对于i,作为整数=0到3 ATEXTBOX(i)=txtBox(i).文本 下一个 端接头 末级 '以捕获文本框中的所有条目 私有子按钮1\u单击(发送者作为System.Object,e作为Sy

为了在VB.NET中实现这一点,我编写了以下代码:

公共类TBdata
Public txtBox()作为TextBox={Form1.TextBox1,Form1.TextBox2,Form1.TextBox3,Form1.TextBox4}
公共ATextBox(3)作为字符串
公共子数据阵列()
对于i,作为整数=0到3
ATEXTBOX(i)=txtBox(i).文本
下一个
端接头
末级
'以捕获文本框中的所有条目
私有子按钮1\u单击(发送者作为System.Object,e作为System.EventArgs)处理按钮1。单击
尺寸d为TBdata=新TBdata()
d、 DataToArray()
Dim msg As String=“”
对于i,作为整数=0到3
msg=msg&d.aTextBoxes(i)和“:”
下一个
MessageBox.Show(msg)
端接头
现在,为什么不能在C#中实现这一点

class-TBdata
{
公共字符串[]ATEXTBOKS=新字符串[3];
公共文本框[]txtBox=新文本框[]{Form1.textBox1,Form1.textBox2,Form1.textBox3,Form1.textBox4};
public void DataToArray()
{
对于(int i=0;i<4;i++)
{
ATEXTBOX(i)=txtBox(i).文本;
}
}
}
问题在于:

public TextBox[] txtBox = new TextBox[] { Form1.textBox1, Form1.textBox2, Form1.textBox3, Form1.textBox4 };
Windows窗体的
Form1
,如果您按类引用它。C#不会创建这个“自动”实例,因此您需要显式地将一个实例传递给表单的构造函数,并从该实例加载文本框

class TextBoxData
{
    public string[] aTextBoxes = new string[3];
    public TextBox[] TextBoxes { get; private set;}

    public TextBoxData(Form1 form)
    {
        this.TextBoxes = new TextBox[] { form.textBox1, form.textBox2, form.textBox3, form.textBox4 };
    }

    public void DataToArray()
    {
        for (int i = 0; i < TextBoxes.Length; i++)
        {
            aTextBoxes[i] = TextBoxes[i].Text;
        }
    }

    // ...
class TextBoxData
{
公共字符串[]ATEXTBOKS=新字符串[3];
公共文本框[]文本框{get;private set;}
公共文本框数据(Form1表单)
{
this.textboxs=newtextbox[]{form.textBox1,form.textBox2,form.textBox3,form.textBox4};
}
public void DataToArray()
{
对于(int i=0;i
问题在于:

public TextBox[] txtBox = new TextBox[] { Form1.textBox1, Form1.textBox2, Form1.textBox3, Form1.textBox4 };
如果您通过类引用Windows窗体的
Form1
。C#不会创建此“自动”实例,因此您需要显式地将实例传递给窗体的构造函数,并从该实例加载文本框

class TextBoxData
{
    public string[] aTextBoxes = new string[3];
    public TextBox[] TextBoxes { get; private set;}

    public TextBoxData(Form1 form)
    {
        this.TextBoxes = new TextBox[] { form.textBox1, form.textBox2, form.textBox3, form.textBox4 };
    }

    public void DataToArray()
    {
        for (int i = 0; i < TextBoxes.Length; i++)
        {
            aTextBoxes[i] = TextBoxes[i].Text;
        }
    }

    // ...
class TextBoxData
{
公共字符串[]ATEXTBOKS=新字符串[3];
公共文本框[]文本框{get;private set;}
公共文本框数据(Form1表单)
{
this.textboxs=newtextbox[]{form.textBox1,form.textBox2,form.textBox3,form.textBox4};
}
public void DataToArray()
{
对于(int i=0;i
在c代码中,类TBData似乎是私有的。可见性关键字不存在,c默认为私有,因此,即使添加正确的using语句以包含TBData命名空间,或者在不同的文件或同一命名空间中编写其他代码,也永远无法实例化TBData类型的对象


同样,在c#中的代码示例中,使用括号访问数组中某个索引处的对象,这是VB的表示法。在c#中,索引是用方括号[]访问的,括号是为方法调用保留的。

您的类TBData在c#代码中似乎是私有的。visibility关键字不存在,c#默认为私有的,因此,即使您添加了正确的using语句以包含TBData命名空间,或者如果您在不同的文件或同一命名空间中编写了其他代码,您也永远不会被able来实例化TBData类型的对象


同样,在c#中的代码示例中,使用括号访问数组中某个索引处的对象,这是VB的表示法。在c#中,索引是用方括号[]访问的,括号是为方法调用保留的。

到底出了什么问题?因为C#要求您编写正确的面向对象代码。而给类型名一个属性是不正确的。很难忘记。可能重复出了什么问题?因为C#要求您编写正确的面向对象代码。给类型名一个属性是不正确的属性不正确。很难忘记。可能与Thank you Reed重复,我仍在消化C#中的这个“非自动”默认实例。我添加了“使用System.Windows.Forms;”对于类TextBoxData,在表单上,我将TextBoxs Modifiers属性从private更改为public。有了它,编译器不再抱怨了。现在,由于类构造函数将Form1作为参数。我如何创建类TextBoxData的实例?谢谢Reed,我仍在消化这个“非自动”问题C#中的默认实例。我在类TextBoxData中添加了“using System.Windows.Forms;”,并在表单上将TextBoxs修饰符属性从private更改为public。有了这个,编译器不再抱怨了。现在,由于类构造函数将Form1作为参数。我如何创建类TextBoxData的实例?