У меня возникли некоторые проблемы при разборе строки для типа текстового поля, я использую код в другой форме в программе и все работает нормально, но при имплантации этих двух строк здесь я получаю нулевое исключение
две линии интереса
string txbName = "br" + bruker + "txt" + 'B' + o;
txtBCont = (TextBox)Controls[txbName];
новая информация
Грег указал мне, чтобы проверить, что находится внутри массива Controls [], и это показывает, в чем моя проблема. Он содержит только 90 строк информации TabControl.
это строка
System.Windows.Forms.TabControl, TabPages.Count: 2, TabPages[0]: TabPage: {ShowWeek}
эта строка дублируется 90 раз, когда я запускаю этот код внутри моего блока catch
catch( System.Exception excep)
{
System.IO.StreamWriter SW;
SW = File.AppendText("C:\\MyDumpFile.txt");
foreach (Control ctrl in Controls)
{
SW.WriteLine(ctrl);
}
SW.Close();
}
как это может быть, если массив Controls не заполнен при Initialize?
Оригинальный пост
и это полный цикл
int dayOfset;
int bruker;
TextBox txtBCont;
for (int i = 0; i < 18; i++)
{
mysqlCon.Open();
dayOfset = -4;
bruker = i + 1;
for (int o = 1; o < 6; o++)
{
MySqlCommand cmd = new MySqlCommand("SELECT (NyeSaker + GamleSaker - (select GamleSaker FROM saker Where Dato = '" + dateTimePicker1.Value.AddDays(dayOfset + 1).ToString("yyyy-MM-dd") + "' AND Bruker_ID = '" + bruker + "' ) ) FROM saker Where Bruker_ID = '" + bruker + "' AND Dato = '" + dateTimePicker1.Value.AddDays(dayOfset).ToString("yyyy-MM-dd") + "'", mysqlCon);
string txbName = "br" + bruker + "txt" + 'B' + o;
txtBCont = (TextBox)Controls[txbName];
//1 past og dp kontrol//
try
{
txtBCont.Text = cmd.ExecuteScalar().ToString();
}
catch( System.Exception excep)
{
//txtBCont1.Text = "0";
MessageBox.Show(excep.Message);
}
dayOfset++;
}
mysqlCon.Close();
}
пытаясь отладить его, я сделал это
string txbName = "br" + bruker + "txt" + 'B' + o;
txtBCont = br1txtB1;
txtBCont = (TextBox)Controls[txbName];
и что происходит, это устанавливает txtBCont в Textbox в этой строке txtBCont = br1txtB1;
но в элементах управления txtBCont = (TextBox) [txbName]; он снова устанавливает его в ноль.
кто-нибудь понял, в чем здесь ошибка?