Gar*_*ary 3 c# designer datagridview winforms
这对我来说是第一次,我以为我完全失去了理智.我有一个简单的winform应用程序,我添加了一个datagridview.我使用我在其他六个项目中使用的相同源来设置dgv的数据源,并按照我想要的方式配置网格.除了网格之外,表单上没有其他任何内容,项目现在包含数据集,绑定源和表适配器.大.但是,设计者在执行此操作时生成的代码无效并导致编译错误,告诉我数据集表适配器对象和数据集本身不存在.
如果我进入编译错误的设计器,我会看到以下几行:
this.tILEDataSet = new ImageEdit.TILEDataSet();
this.logosTableAdapter = new ImageEdit.TILEDataSetTableAdapters.LogosTableAdapter();
Run Code Online (Sandbox Code Playgroud)
ImageEdit是我添加此绑定控件的类.如果我删除"ImageEdit.",代码编译并完美地工作.当然,由于这是一个设计器生成的文件,一旦我做了任何其他更改,它就会恢复为有问题的代码.
我做了三次,有三个不同的项目,两次从头开始,带有一个新的visual studio实例.
导致这种情况发生的可能是什么问题,并且除了手动编辑设计器文件之外还有其他方法,我从不喜欢这样做吗?
我没有改变任何东西,一切都是由设计师产生的.命名空间和类都是作为ImageEdit创建的.设计器包含以下定义:private TILEDataSet tILEDataSet; private TILEDataSetTableAdapters.LogosTableAdapter logosTableAdapter;
设计器类定义确实派生自global :: System.ComponentModel.Component:
public partial class LogosTableAdapter : global::System.ComponentModel.Component {
.
.
.
Run Code Online (Sandbox Code Playgroud)
再次感谢您的任何见解.
我怀疑你的解决方案中有几个成员ImageEdit,无论是命名空间,类还是其他成员.在Microsoft的名称指南中,特别是命名空间的名称,他们建议:
使用公司名称作为前缀名称空间名称,以防止来自不同公司的名称空间具有相同的名称和前缀.
不要对命名空间使用相同的名称,也不要在该命名空间中使用类型.例如,不要将Debug用于名称空间名称,还要在同一名称空间中提供名为Debug的类.一些编译器要求这些类型完全合格.
不要在单个应用程序模型中为名称空间中的类型指定相同的名称.
例如,如果您正在编写要由Windows窗体应用程序开发人员使用的特殊控件库,则不应引入名为Checkbox的类型,因为应用程序模型(CheckBox)已存在具有此名称的类型.
仅第二点应该解决您的问题.使用第一个点,公司名称作为命名空间的一部分,将使代码生成器为您的对象提供更简洁的名称,例如:
this.tILEDataSet = new MyCompany.ImageEdit.TILEDataSet();
this.logosTableAdapter = new MyCompany.ImageEdit.TILEDataSetTableAdapters.LogosTableAdapter();
Run Code Online (Sandbox Code Playgroud)