c#不能访问同一类中的文本框

本文关键字:一类 文本 访问 不能 | 更新日期: 2023-09-27 18:08:02

我有两个问题;然而,由于它们非常相似,我将在一个帖子中问他们。

我不能从这里引用文本框的原因是什么?我在我的项目中创建了另一个文件,并将

namespace EnterData.DataEntry
{
    public partial class WebForm1 : System.Web.UI.Page
    { 

使其进入与webform相同的命名空间和部分类。但是我无法进入文本框!

public partial class WebForm1 : System.Web.UI.Page
    {
public class LOMDLL.Main_Lom_Form PopulateMainForm()
        {
            //populate class
            LOMDLL.Main_Lom_Form TheForm = new LOMDLL.Main_Lom_Form();
            try
            {
                TheForm.lom_number = lom_numberTextBox.Text.ToInt();
                TheForm.identified_by = identified_byTextBox.Text;
                TheForm.occurrence_date = occurrence_dateTextBox.Text.ToDateTime();
                //TheForm.pre_contact = pre_contactTextBox.Text; //need to create this texdtbox
                //TheForm.pre_practice_code = pre_practice_codeTextBox.Text; //create this
                TheForm.report_by = report_byTextBox.Text;
                TheForm.report_date = report_dateTextBox.Text.ToDateTime();
                TheForm.section_c_comments = section_c_commentsTextBox.Text;
                TheForm.section_c_issue_error_identified_by = section_c_issue_error_identified_byTextBox.Text;
                TheForm.section_d_investigation = section_d_investigationTextBox.Text;
                TheForm.section_e_corrective_action = section_e_corrective_actionTextBox.Text;
                TheForm.section_f_comments = section_f_commentsTextBox.Text;
            }
            catch (Exception e)
            {
            }

我得到这个错误:

错误r 20 Cannot access a non-static member of outer type 'EnterData.DataEntry.WebForm1' via nested type 'EnterData.DataEntry.WebForm1.LOMDLL' C:'Documents and Settings'agordon'My Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'DAL.cs 68 38 EnterData

所有文本框

我不能从这里访问文本框的原因是什么?

c#不能访问同一类中的文本框

你的意思是在这里嵌套类吗?如果您打算声明一个返回Main_Lom_Form()的方法,请尝试:

public LOMDLL.Main_Lom_Form PopulateMainForm()

如果你打算对WebForm1的成员TheForm调用该方法,那么在PopulateMainForm的调用之外实例化它:

LOMDLL.Main_Lom_Form TheForm = new LOMDLL.Main_Lom_Form();
public void PopulateMainForm()
{
    // snip
}

这里有一个错误:

public class LOMDLL.Main_Lom_Form PopulateMainForm()

你是在webform类中声明这个类吗?无论如何,类声明是错误的。

作为你问题的最后一点,当你有这个时:

public static class Main_Lom_Form

想象您从其他webform类中移出,它周围的命名空间是什么(之前)?只需将类移动到与类WebForm1相同的名称空间中,您不需要将名称空间放在类名之前,您将能够像这样创建它:

var obj = new Main_Lom_Form();

如果有意义的话,但我怀疑;-)

我认为你的代码有一些问题。第一个跳出来的是:

public class LOMDLL.Main_Lom_Form PopulateMainForm()

这不是一个有效的c#代码行。我假设你实际上是想写:

public LOMDLL.Main_Lom_Form PopulateMainForm()

其次,如果您将Main_Lom_Form定义为静态,则不能实例化它,它是一个静态类。你可以这样写:

public class Main_Lom_Form

我认为这是上述两个问题的结合,导致编译器有一个笔画