05-05-23, 07:01 PM
(05-05-23, 04:37 PM)ramy alfoly كتب :(05-05-23, 03:59 PM)ahmed_king2023 كتب : السلام عليكم ورحمة الله وبركاته
الرجاء من اخوة خبراء بالمنتدي اجابتي
لاريد كتابة كل مره combobox في دالة بمعني مره اول مره ثاني مره ثالت
اريد combobox واحد فقط هل من حل منطقي او لا يوجد حل
اريد فقط في استدعاء استدعي الذي اريد تعبئته فقط
PHP كود :
public partial class Form1 : Form
{
public void fill_combobox(string sql,string col_name)
{
comboBox1.Items.Clear();
comboBox2.Items.Clear();
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(sql, Class1.con);
adp.Fill(dt);
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
comboBox1.Items.Add(dt.Rows[i][col_name]);
comboBox2.Items.Add(dt.Rows[i][col_name]);
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
fill_combobox("select *from ItemNameTable", "ItemName");
fill_combobox("select *from ItemCategoryTable", "CategoryName");
}
private void comboBox1_DropDown(object sender, EventArgs e)
{
fill_combobox("select *from ItemCategoryTable", "CategoryName");
}
private void comboBox2_DropDown(object sender, EventArgs e)
{
fill_combobox("select *from ItemNameTable", "ItemName");
}
}
عدل fill_combobox بحيث تضيف فيه متغير يشير لل combobox الذي تريد تعبئته
PHP كود :
public void fill_combobox(ComboBox cb,string sql, string col_name)
{
cb.Items.Clear();
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(sql, Class1.con);
adp.Fill(dt);
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
cb.Items.Add(dt.Rows[i][col_name]);
}
}
وتستدعيه لل combobox الاول
وال combobox الثانيPHP كود :
fill_combobox(comboBox1,"select *from ItemCategoryTable", "CategoryName");
PHP كود :
fill_combobox(comboBox2,"select *from ItemNameTable", "ItemName");
لا ادري لماذا وضعت الحدث comboBox1_DropDown والحدث comboBox2_DropDown لانه ليس مخصص للتعبئه (الافضل تلغي هذا الحدث)
الحدث مفيد جدا وهو عند غلق قائمة
