Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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# DataGridView选择错误吗?_C#_Winforms_Datagridview_Dataset - Fatal编程技术网

C# DataGridView选择错误吗?

C# DataGridView选择错误吗?,c#,winforms,datagridview,dataset,C#,Winforms,Datagridview,Dataset,我不熟悉C和Windows窗体,请耐心等待。我正在制作一个Windows窗体,它允许您加载视频、加载脚本,然后制作字幕。我想显示一个表格,其中的数据将自动填充,因为它们标记标题的开始和结束,并选择文本,并将可编辑。最后,我想将所有数据保存到一个xml文件中。DataGridView UI看起来正是我想要的,但我不知道如何从DataGridView中获取数据,最好是在数据集中 我现在正在考虑使用具有多列的ListView。如果您有任何建议,我们将不胜感激。Datagridview应该可以很好地用于

我不熟悉C和Windows窗体,请耐心等待。我正在制作一个Windows窗体,它允许您加载视频、加载脚本,然后制作字幕。我想显示一个表格,其中的数据将自动填充,因为它们标记标题的开始和结束,并选择文本,并将可编辑。最后,我想将所有数据保存到一个xml文件中。DataGridView UI看起来正是我想要的,但我不知道如何从DataGridView中获取数据,最好是在数据集中


我现在正在考虑使用具有多列的ListView。如果您有任何建议,我们将不胜感激。

Datagridview应该可以很好地用于该应用程序,您可以通过执行以下操作轻松检索保存到其中的任何数据:

    dgvThing.DataSource;
它将包含保存到Datagridview列表、数组等中的任何类型

例如:

    public class SuperFunObject {
        public TimeSpan start { get; set; }
        public TimeSpan end { get; set; }
        public string selectedText { get; set; }
        public SuperFunObject(Timespan a, Timespan b, string text) {
            start = a;
            end = b;
            selectedText = text;
        }
    }
    List<SuperFunObject> funList = new List<SuperFunObject>();
    funList.Add(new SuperFunObject(TimeSpan.FromSeconds(0.0),TimeSpan.FromSeconds(20.0),"Hello"));
    dgvThing.DataSource = funList;
    ...
    ...
    //retrive your list
    List<SuperFunObject> getData = ((List<SuperFunObject>)dgvThing.DataSource);

我希望这个例子能有所帮助。旁注,设置访问器get的原因是为了Datagridview能够从对象检索数据以进行显示。

这里有一小曲,它将把一个类从数据源填充到数组中,保存到参数中指定的am XML文件路径

public static bool SaveXMLObjectToFile(object IncomingXMLObject, string Path)   
{

string xmlString = null;
File TheFileIn = default(File);
string docname = null;
StreamWriter WriteAFile = default(StreamWriter);
string filelocation = null;
//Dim filelocation As String

System.IO.MemoryStream MemStream = new System.IO.MemoryStream();
System.Xml.Serialization.XmlSerializer Ser = default(System.Xml.Serialization.XmlSerializer);
System.Text.Encoding encodingvalue = System.Text.UTF8Encoding.UTF8;
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(MemStream, encodingvalue);

bool Result = false;

try {
    File.Delete(Path);
    Ser = new System.Xml.Serialization.XmlSerializer(IncomingXMLObject.GetType);
    Ser.Serialize(writer, IncomingXMLObject);
    MemStream = writer.BaseStream;
    //as system.io.memorystream
    xmlString = UTF8ByteArrayToString(MemStream.ToArray());
    //Will Not Convert Byte Array from Diagram
    filelocation = Path;
    WriteAFile = TheFileIn.AppendText(filelocation);
    WriteAFile.Write(xmlString);
    WriteAFile.Close();
    Result = true;
} catch (Exception e) {
    Result = false;
}

return Result;

}

DataGridView可能更容易使用,因为它可以直接转换为数据集:@AlexInTime-他打败了你,让你说出了你要说的话,而你甚至没有投票。悲伤。这是我最初尝试的,但它只是返回null@BrianMikeyHalbert:您能显示用于检索数据的代码以及用于将其分配给gridview的代码吗?@BrianMikeyHalbert示例有帮助吗?@Andrew_CS我完全忘记了