#c# #windows #visual-studio #winforms
#c# #Windows #visual-studio #winforms
Вопрос:
у меня есть две layutflowpanel 1-flowpanel_category 2-flowpanel_products
когда я использую вложенный цикл for внутри кнопки, нажмите, чтобы получить продукты из текущей выбранной категории, другая панель потока_prd не показывает, что продукты из categorey, возможно, у меня какая-то ошибка в какой-то момент
я установил внутри InitialComponents этот код для повторного поиска всех элементов из category, чтобы поместить его в flowpanel_category
//get all category and set it all to flowpanel_cat
FLOWPANEL_CAT.Controls.Clear();
try
{
DT = clsgetcat.get_prd_categories();
for (int i = 0; i <= DT.Rows.Count; i )
{
Extendedbutton Eb = new Extendedbutton();//with Extendedbutton this time
Eb.prdid = DT.Rows[i][0].ToString();//this asigns product_id to extended txtprdid
Eb._prdnme = DT.Rows[i][1].ToString();//this asigns product_nme to extended txtprdnme
Eb._myval = DT.Rows[i][1].ToString();//this asigns products to extended buttondescription
Eb.Name = DT.Rows[i][1].ToString();
Eb.Text = DT.Rows[i][1].ToString();
Eb.ForeColor = Color.White;
Eb.BackColor = Color.SkyBlue;
Eb.Font = new Font("Serif", 10, FontStyle.Regular);
Eb.Width = 100;
Eb.Height = 60;
Eb.TextAlign = ContentAlignment.MiddleCenter;
Eb.Margin = new Padding(5);
Button b = addbutton(i);
Eb.Click = new System.EventHandler(this.buttonclick);
FLOWPANEL_CAT.Controls.Add(Eb);
}
}
catch
{
return;
}
я использую внутреннюю кнопку, щелкните этот код, чтобы отобразить все элементы из категории внутри flowpanel_prodcuts
public void buttonclick(object sender, EventArgs e)
{
FLOWPANEL_PRD.Controls.Clear();
for (int i = 0; i <= DT.Rows.Count; i )
{
try
{
for (int j = 0; j <= i; j )
{
Extendedbutton Eb = new Extendedbutton();//with Extendedbutton this time
Eb._prdid = DT.Columns[0].ToString();
string prdid = ((Extendedbutton)sender)._prdid;
Eb._prdnme = DT.Columns[1].ToString();
string prdnme = ((Extendedbutton)sender)._prdnme;
Eb.Name = DT.Rows[j][1].ToString();
Eb.Text = DT.Rows[j][1].ToString();
Eb.ForeColor = Color.White;
Eb.BackColor = Color.SkyBlue;
Eb.Font = new Font("Serif", 10, FontStyle.Regular);
Eb.Width = 100;
Eb.Height = 60;
Eb.TextAlign = ContentAlignment.MiddleCenter;
Eb.Margin = new Padding(5);
Button b = addbutton(j);
Eb.Click = new System.EventHandler(this.buttonclick);
txttotalamount.Clear();
txtprdqty.Clear();
txtprdqty.Focus();
FLOWPANEL_PRD.Controls.Add(Eb);
}
}
catch
{
return;
}
}
txtprdqty.Focus();
}
Button addbutton(int i)
{
Extendedbutton EB = new Extendedbutton();
EB.Name = EB._myval;
EB.Text = EB._myval;
EB.ForeColor = Color.White;
EB.BackColor = Color.SkyBlue;
EB.Font = new Font("Serif", 10, FontStyle.Regular);
EB.Width = 100;
EB.Height = 60;
EB.TextAlign = ContentAlignment.MiddleCenter;
EB.Margin = new Padding(5);
return EB;
}
на этом рисунке показан результат вывода, но у меня есть какая-то ошибка, когда я получаю продукты из каждой категории
Комментарии:
1. Большинством динамических вещей легче управлять в WPF, см., Например timdams.com/2011/02/08 /…
2. но у меня сейчас большой проект, я не могу изменить все, что работает, на WPF;) но спасибо за предложение
3. @Shihabmohamed, основываясь на вашем коде, у меня есть несколько вопросов. Во-первых, можете ли вы рассказать мне о взаимосвязи между продуктом и категорией? В вашем коде я этого не вижу. Во-вторых, вам будет лучше предоставить соответствующий код о DT. Наконец, каков ваш желаемый результат и с какой ошибкой или исключением вы сталкиваетесь?
4. у меня есть Datatable, использующий его для получения данных из хранимой процедуры, этот Datatable DT я буду использовать для них категории и продукты
5. Вы можете установить точку останова и щелкнуть значок лупы, чтобы отобразить таблицу данных. Например, []: i.stack.imgur.com/71b7I.png Кроме того, пожалуйста, скажите мне, с какой ошибкой вы сталкиваетесь.