Динамически создаваемая форма в C # и манипулирование ими - PullRequest
1 голос
/ 08 октября 2011

Я создал форму окна C #, которая извлекает данные из 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();
    }

1 Ответ

1 голос
/ 08 октября 2011

Какой-то непроверенный код, я думаю, вы поняли:

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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...