PDA

View Full Version : Combo boxوChecked list box



sheida-peyravi
سه شنبه 17 مهر 1386, 20:02 عصر
من یک فرم ساخته ام که دارای یک combo box وchecked list box می باشد .می خواستم زمانی که در combo boxرشته مورد نظر را انتخاب می کنم با کلیک در checked list box دروس مربوط به رشته انتخاب شده را نشان دهد .لطفا من را در این راه یاری کنید.
با تشکر

saeed_rezaei
چهارشنبه 18 مهر 1386, 00:16 صبح
سلام
لیست دروس و رشته ها در بانک و یا فایلی ذخیره شدن؟ یا اینکه لستشون رو در سورس برنامه قرار می دهید؟

PC2st
چهارشنبه 18 مهر 1386, 00:25 صبح
بستگی داره که آیا به منبع داده متصل هستند (مثلا DataTable)؟
که به احتمال زیاد متصل باشند.

و اینکه ستونها در DataTable چه وضعیتی دارند؟ (چند ستون و هر ستون چه وظیفه ای داره؟) مثلا ستون اول برای برای نام رشته های تحصیلی است و ستون دوم برای دروس ارائه شده؟ پس مقادیر ستون اول تکراری هستند (مثلا 10 تا رکورد ستون اولشون روی رشته "فیزیک" مقداردهی شده) و مقادیر ستون دوم (نام دروس) بر اساس ستون اول مقدار دهی شده؟

sheida-peyravi
چهارشنبه 18 مهر 1386, 10:20 صبح
ببخشید فکر می کنم اشتباهی شده .من در فرم می خواهم در یک combo box سه رشته(کامپیوتر وآمار وIT ) را قرار بدهم و زمانی که کاربر در combo box رشته کامپیوتر را انتخاب در checked list box دروس مربوط به رشته کامپیوتر را نشان بدهد.در ضمن می خواهم درSource برنامه بنویسم. البته در پایگاه داده ام در بخش دروس و رشته ها نیز این اطلاعات وارد می شود اما چون الان connection string مشکل داره در سورس میسازم.

PC2st
چهارشنبه 18 مهر 1386, 23:17 عصر
در ضمن می خواهم درSource برنامه بنویسم.
منظورتون از اینکه میخواهید در سورس برنامه بنویسید، چیست؟
+ آیا منظورتون از سورس همان DataTable یا یک DataSet است (البته داده ها رو خودتون بدید و نه اینکه از دیتابیس استفاده کنید!؟)
+ یا اینکه میخواید که اصولا از طریق خاصیت Items از ComboBox یا CheckedListBox این کار رو انجام بدید؟ (که به نظرم مناسب نیست)

alinaghiha
چهارشنبه 18 مهر 1386, 23:38 عصر
فکر کنم منظور دوست عزیزمون از سورس برنامه حل مشکلشون با کدنویسیه
احتمالا ایشون یه دیتابیس دارن که دروس سه رشته داخل اون ذخیره شده و میخوان با انتخاب رشته مربوطه در combo box تمام دروس مربوط به اون رشته داخل check list box بیاد مثل اینکه datagridview که اطلاعات رشته مشخص شده رو نمایش می ده
این کد واسه اضافه کردن به چک لیسته


ForEach field AsStringIn availableFields
chklst.Items.Add(field, True)
Next

sheida-peyravi
چهارشنبه 18 مهر 1386, 23:51 عصر
با تشکر از همگی
به نظر من از طریق Item راحت تر است امااگر بقول شما بخواهم از dataset استفاده کنم که شما می گویید بهتر است .باید چه کار کنم ودر ضمن منظورتون از اینکه از Dataset ,Datatableاستفاده کنم به چه صورت است.؟

PC2st
پنج شنبه 19 مهر 1386, 21:47 عصر
اگر میخواید از DataSet استفاده کنید، تنها یک ComboBox بنام ComboBox1 و یک CheckedListBox بنام CheckedListBox1 رو به فرم اضافه کرده و کدهای زیر رو در رویداد Load فرم بنویسید:


Dim ds As DataSet = New DataSet()
Dim dt1 As DataTable = New DataTable("Section")
Dim dt2 As DataTable = New DataTable("Lesson")
dt1.Columns.Add("ID", GetType(Integer))
dt1.Columns.Add("Secs", GetType(String))
dt2.Columns.Add("ID", GetType(Integer))
dt2.Columns.Add("Lesn", GetType(String))
ds.Tables.AddRange(New DataTable() {dt1, dt2})
ds.Relations.Add("MyRelation", dt1.Columns("ID"), dt2.Columns("ID"))
dt1.Rows.Add(0, "Computer")
dt1.Rows.Add(1, "IT")
dt1.Rows.Add(2, "Civil")
dt2.Rows.Add(0, "com01")
dt2.Rows.Add(0, "com02")
dt2.Rows.Add(0, "com03")
dt2.Rows.Add(1, "it_01")
dt2.Rows.Add(1, "it_02")
dt2.Rows.Add(1, "it_03")
dt2.Rows.Add(1, "it_04")
dt2.Rows.Add(1, "it_05")
dt2.Rows.Add(2, "civil:01")
dt2.Rows.Add(2, "civil:02")
Me.ComboBox1.DataSource = ds
Me.ComboBox1.DisplayMember = "Section.Secs"
Me.CheckedListBox1.DataSource = ds
Me.CheckedListBox1.DisplayMember = "Section.MyRelation.Lesn"

فقط یک نکته اینکه وقتی آیتمهای CheckedListBox1 رو انتخاب کردید، پس از تغییر گزینه ComboBox1، آن آیتمها مقادیر چک شدگی خودشون رو از دست میدهند (باید برای این قسمت کد اضافی بنویسید که متاسفانه الان چیزی به ذهنم نرسید)