Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# GridControl对象引用未设置为对象的实例_C#_.net_Winforms_Devexpress_Xtragrid - Fatal编程技术网

C# GridControl对象引用未设置为对象的实例

C# GridControl对象引用未设置为对象的实例,c#,.net,winforms,devexpress,xtragrid,C#,.net,Winforms,Devexpress,Xtragrid,我得到的对象引用未设置为对象的实例 我先把它读给DataTable然后 gridControl2.DataSource = dataTable5; 我把.txt文件读到GridControl就行了。 我在使用后出现错误: gridView2.Columns["SomethingA"].Visible = false; 我不认为列上有空值,因为我使用SQL查询获取这些值并避免了空值 编辑:完整代码 char[] chrArray10 = new char[1]; chrA

我得到的对象引用未设置为对象的实例 我先把它读给DataTable然后

  gridControl2.DataSource = dataTable5;
我把.txt文件读到GridControl就行了。 我在使用后出现错误:

gridView2.Columns["SomethingA"].Visible = false;
我不认为列上有空值,因为我使用SQL查询获取这些值并避免了空值

编辑:完整代码

 char[] chrArray10 = new char[1];
        chrArray10[0] = '\t';
        Assembly assembly = Assembly.LoadFile("C:/Users/PC-ASQ/documents/visual studio 2013/Projects/ClassLibrary1/ClassLibrary1/bin/Debug/Mydll.dll");

        System.Resources.ResourceManager resourcemanager = new System.Resources.ResourceManager("ClassLibrary1.Properties.Resources", assembly);


        var textList = resourcemanager.GetString("GISS").Split(chrArray10);
        string[] strArrays15 = resourcemanager.GetString("GISS").Split('\n');


        string[] strArrays16 = strArrays15[0].Split(chrArray10);
        DataTable dataTable5 = new DataTable();
        string[] strArrays17 = strArrays16;
        for (int s = 0; s < (int)strArrays17.Length; s++)
        {
            string str5 = strArrays17[s];
            dataTable5.Columns.Add(str5);
        }
        for (int t = 1; t < (int)strArrays15.Length; t++)
        {
            char[] chrArray11 = new char[1];
            chrArray11[0] = '\t';
            dataTable5.Rows.Add(strArrays15[t].Split(chrArray11));
        }


        gridControl2.DataSource = dataTable5;


       gridView2.Columns["ToolTip"].Visible = false;
       gridView2.Columns["Icons"].Visible = false;


        return;
char[]chrary10=新字符[1];
chrary10[0]='\t';
Assembly Assembly=Assembly.LoadFile(“C:/Users/PC-ASQ/documents/visualstudio 2013/Projects/ClassLibrary1/ClassLibrary1/bin/Debug/Mydll.dll”);
System.Resources.ResourceManager ResourceManager=新的System.Resources.ResourceManager(“ClassLibrary1.Properties.Resources”,程序集);
var textList=resourcemanager.GetString(“GISS”).Split(chrarary10);
string[]strArrays15=resourcemanager.GetString(“GISS”).Split('\n');
字符串[]strArrays16=strArrays15[0]。拆分(chrray10);
DataTable dataTable5=新的DataTable();
字符串[]strArrays17=strArrays16;
对于(int s=0;s<(int)strArrays17.Length;s++)
{
字符串str5=strArrays17[s];
dataTable5.Columns.Add(str5);
}
对于(int t=1;t<(int)strArrays15.Length;t++)
{
char[]chrary11=新字符[1];
chrary11[0]='\t';
dataTable5.Rows.Add(strArrays15[t].Split(chrarary11));
}
gridControl2.DataSource=dataTable5;
gridView2.Columns[“工具提示”]。Visible=false;
gridView2.列[“图标”]。可见=假;
返回;
是否存在“SomethingA”网格列

您之所以说不存在空值,是因为您确保查询不会产生任何结果,但这与如何访问可视化网格列对象无关。如果网格没有“SomethingA”列,那么不管数据是什么,您的代码肯定会失败

(现在我知道我们谈论的是XtraGrid,上述内容与此无关)

更新:

好的,首先,要按字段名检索DevExpress的
GridView
列,必须使用列集合的方法:

第二,下次你问问题时,一定要包括所有必要的细节。正如您所见,您使用的是第三方网格,这一事实改变了一切。并不是每个网格都是相同的。我编辑了你的帖子以添加相关标签。在将来,一定要包括它们

第三,当要求提供错误消息时,这意味着仅错误消息不足以正确诊断问题。堆栈包含有关代码正在执行的步骤的重要信息。如果您需要异常方面的帮助,最好提供该信息


第四也是最后一点,DevExpress有自己的功能。您的问题可能会在那里得到更好的回答。

我检查了此代码,它工作正常

 DataTable datatable5 = new DataTable();
 datatable5.Columns.Add("ToolTip");
 datatable5.Columns.Add("Icons");
 datatable5.Columns.Add("ID");
 datatable5.Columns.Add("Number");

 for (int i = 0; i < 4; i++)
     datatable5.Rows.Add(new object[] { String.Format("ToolTip{0}.", i),i,i,i});

  gridControl2.DataSource = dataTable5;

  gridView2.Columns["ToolTip"].Visible = false;
  gridView2.Columns["Icons"].Visible = false;

你到底是什么意思X网格确实有这个列。@user3091970那么你的代码就不能在你提到的那一行崩溃。请添加完整的异常stacktrace和失败的实际代码行。失败的代码行:gridView2.Columns[“SomethingA”]。Visible=false@用户3091970正如我所说:如果这是导致崩溃的行,那么您的“SomethingA”列根本不存在。该变量或实际的
gridView2
变量为空。请编辑您的原始答案并发布完整的异常跟踪。这一切都会变得清晰。完整的异常堆栈跟踪在这里会有所帮助。还有,你在哪个平台上?Winform?ASP.NET?这是本机gridcontrol还是第三方的?WinForms~~gridcontrol来自DevXPress控件。这是一个网格,DevXPress的gridcontrol就是这样。您有GridControl和GridView。正如我所说。。我可以隐藏一列。。但是第二个我不能:(我知道那是DevExpress GridControl,请检查你的问题你把GridControl命名为什么…?你能发布完整的代码吗,这样我们就可以看到你是如何隐藏一列而不是另一列的。
 DataTable datatable5 = new DataTable();
 datatable5.Columns.Add("ToolTip");
 datatable5.Columns.Add("Icons");
 datatable5.Columns.Add("ID");
 datatable5.Columns.Add("Number");

 for (int i = 0; i < 4; i++)
     datatable5.Rows.Add(new object[] { String.Format("ToolTip{0}.", i),i,i,i});

  gridControl2.DataSource = dataTable5;

  gridView2.Columns["ToolTip"].Visible = false;
  gridView2.Columns["Icons"].Visible = false;
 DataTable dataTable5 = new DataTable();
 string[] strArrays17 = strArrays16;
 for (int s = 0; s < (int)strArrays17.Length; s++)
 {
     string str5 = strArrays17[s];
     dataTable5.Columns.Add(str5);//check any extra space adding here
 }
 for (int t = 1; t < (int)strArrays15.Length; t++)
 {
     char[] chrArray11 = new char[1];
     chrArray11[0] = '\t';
     dataTable5.Rows.Add(strArrays15[t].Split(chrArray11));
 }