Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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# 在C中动态创建表单并对其进行操作_C#_Winforms - Fatal编程技术网

C# 在C中动态创建表单并对其进行操作

C# 在C中动态创建表单并对其进行操作,c#,winforms,C#,Winforms,我已经创建了一个C windows窗体,它从MS Access检索数据,并根据该数据的第一列动态创建单独的子窗体。但是,对于我来说,如果任何数据是已创建表单的副本,那么我需要访问以前创建的表单,而不是创建新表单。有人能帮我吗 ChatWindow tempwindow = new ChatWindow(); while (aFromReader.Read()) //aFromReader retrieves the first column from a Table { OleDbCom

我已经创建了一个C windows窗体,它从MS Access检索数据,并根据该数据的第一列动态创建单独的子窗体。但是,对于我来说,如果任何数据是已创建表单的副本,那么我需要访问以前创建的表单,而不是创建新表单。有人能帮我吗

ChatWindow tempwindow = new ChatWindow();
while (aFromReader.Read()) //aFromReader retrieves the first column from a Table
{
    OleDbCommand aCommand = new OleDbCommand("select * from Messages",aConnection);
    OleDbDataReader aMessage = aCommand.ExecuteReader();

    if (this.Text != aFromReader.GetValue(0).ToString())

    {
        tempwindow = new ChatWindow();
        tempwindow.Text = aFromReader.GetValue(0).ToString();
        tempwindow.Show();
    }

一些未经测试的代码,我想你明白了:

using System.Collections.Generic;
// ...

Dictionary<string,ChatWindow> windowDict = Dictionary<string,ChatWindow>();

while (aFromReader.Read()) 
{
    OleDbCommand aCommand = new OleDbCommand("select * from Messages",aConnection);
    OleDbDataReader aMessage = aCommand.ExecuteReader();

    string windowText = aFromReader.GetValue(0).ToString();
    if(windowDict.Contains(windowText))
    {
        // do something with windowDict[windowText]
    }
    else
    {
        tempwindow = new ChatWindow();
        tempwindow.Text = windowText;
        windowDict.Add(windowText,tempwindow);
        tempwindow.Show();
    }
}

一些未经测试的代码,我想你明白了:

using System.Collections.Generic;
// ...

Dictionary<string,ChatWindow> windowDict = Dictionary<string,ChatWindow>();

while (aFromReader.Read()) 
{
    OleDbCommand aCommand = new OleDbCommand("select * from Messages",aConnection);
    OleDbDataReader aMessage = aCommand.ExecuteReader();

    string windowText = aFromReader.GetValue(0).ToString();
    if(windowDict.Contains(windowText))
    {
        // do something with windowDict[windowText]
    }
    else
    {
        tempwindow = new ChatWindow();
        tempwindow.Text = windowText;
        windowDict.Add(windowText,tempwindow);
        tempwindow.Show();
    }
}

如果您向我们展示一个表单创建的代码示例,那么给您一个合理的答案会容易得多。您是否只能使用C2.0?如果没有,请重新标记为cIf,您可以向我们展示一个表单创建的代码示例,这将更容易给您一个合理的答案。您是否只能使用C2.0?如果没有,请重新标记为谢谢你,布朗医生。那会很有帮助。我现在就试试。谢谢你,布朗医生。那会很有帮助。我现在就试试。