c#无法访问同一类的文本框

时间:2011-09-09 18:13:58

标签: c# asp.net

我有两个不同的问题;但是,由于它们非常相似,我会在一个帖子中询问它们。

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

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)
            {

            }

我收到此错误:

ERRO 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

所有文本框上的

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

3 个答案:

答案 0 :(得分:2)

这里有一个错误:

public class LOMDLL.Main_Lom_Form PopulateMainForm()

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

关于你问题的最后一点,当你有这个:

public static class Main_Lom_Form
想象你从其他webform类搬出来了,你周围的命名空间是什么(之前)?只需在同一个命名空间内移动类而不是类WebForm1,你就不需要将命名空间放在类名之前,你就可以像这样创建它:

var obj = new Main_Lom_Form();
如果它有意义,但我怀疑; - )

答案 1 :(得分:2)

我认为您的代码存在一些问题。弹出的第一个是:

public class LOMDLL.Main_Lom_Form PopulateMainForm()

这不是一个有效的C#代码行。我假设你真的打算写:

public LOMDLL.Main_Lom_Form PopulateMainForm()

其次,如果您将Main_Lom_Form定义为静态,则无法实例化它,它是一个静态类。你可以解决这个问题:

public class Main_Lom_Form

我认为它是上述两个问题的组合,导致编译器中风。

答案 2 :(得分:2)

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

public LOMDLL.Main_Lom_Form PopulateMainForm()

如果您打算针对名为WebForm1的{​​{1}}成员调用该方法,请在调用TheForm之外实例化该方法:

PopulateMainForm