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
所有文本框
我不能从这里访问文本框的原因是什么?
你的意思是在这里嵌套类吗?如果您打算声明一个返回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
我认为这是上述两个问题的结合,导致编译器有一个笔画