PDA

View Full Version : کار با ListView



mohammad2o0
یک شنبه 05 خرداد 1392, 00:35 صبح
سلام دوستان ، ببخشید من واقعا مبتدی هستم
توی یک پروژه یک ListView دارم که چند آیتم داره ، کدی را میخواستم وقتی روی هر آیتم کلیک کنم کاری را انجام بده
مثلا آیتم اول یک پیغام بده ، آیتم دوم یک عکس را بارگزاری کنه و آیتم سوم فونت یک نوشته را عوض کنه

با تشکر

f.beigirad
یک شنبه 05 خرداد 1392, 02:40 صبح
سلام دوست من.
به جمع برنامه نویسا خوش اومدی.

از سوالت مشخصه که چقدر تازه کاری.
به نظر من چندتا کتاب یا ebook درباره ابزار ها بخون تا یکم اشناتر شی.
در واقع تو در این تاپیک سوالیو پرسیدی که با یکم مطالعه درباره ListView به جوابش میرسی.

پاینده باشی.

mohammad2o0
یک شنبه 05 خرداد 1392, 09:21 صبح
مرسی ، کاش لااقل جواب میدادید .
بازم ممنون از راهنماییتون

mohammad2o0
یک شنبه 05 خرداد 1392, 17:04 عصر
کسی نیست کمک کنه ؟! :ناراحت:

_behnam_
یک شنبه 05 خرداد 1392, 18:09 عصر
سلام دوست عزیز.
واسه اینکه بتوانید با کلیک روی هر آیتم یک کار مشخصی انجام دهید باید از روی یک مشخصه آیتم که در دیگر آیتم ها نیست اینکارا انجام دهید.
مثلا از روی متن آیتم یا ایندکس اون که انتخابش بستگی به خودتون و کاری که میخواید انجام بدید داره.
فرض کنید میخواهید با کلیک روی آیتمی که متن آن عکس است عکسی را نمایش دهید. توی رویداد SelectedIndexChanged متن آیتمی رو که انتخاب شده با عکس مقایسه میکنیم اگر برابر دستور نمایش عکس رو اجرا میکنیم.
یه نمونه سورس میزارم که شناسایی آیتم ها از روی اندیسشون هست.

alexmcse
یک شنبه 05 خرداد 1392, 21:23 عصر
مرسی ، کاش لااقل جواب میدادید .
بازم ممنون از راهنماییتون

تابع رو بررسی کن
private void CreateMyListView()
{
// Create a new ListView control.
ListView listView1 = new ListView();
listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));

// Set the view to show details.
listView1.View = View.Details;
// Allow the user to edit item text.
listView1.LabelEdit = true;
// Allow the user to rearrange columns.
listView1.AllowColumnReorder = true;
// Display check boxes.
listView1.CheckBoxes = true;
// Select the item and subitems when selection is made.
listView1.FullRowSelect = true;
// Display grid lines.
listView1.GridLines = true;
// Sort the items in the list in ascending order.
listView1.Sorting = SortOrder.Ascending;

// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("item1",0);
// Place a check mark next to the item.
item1.Checked = true;
item1.SubItems.Add("1");
item1.SubItems.Add("2");
item1.SubItems.Add("3");
ListViewItem item2 = new ListViewItem("item2",1);
item2.SubItems.Add("4");
item2.SubItems.Add("5");
item2.SubItems.Add("6");
ListViewItem item3 = new ListViewItem("item3",0);
// Place a check mark next to the item.
item3.Checked = true;
item3.SubItems.Add("7");
item3.SubItems.Add("8");
item3.SubItems.Add("9");

// Create columns for the items and subitems.
// Width of -2 indicates auto-size.
listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

//Add the items to the ListView.
listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});

// Create two ImageList objects.
ImageList imageListSmall = new ImageList();
ImageList imageListLarge = new ImageList();

// Initialize the ImageList objects with bitmaps.
imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));

//Assign the ImageList objects to the ListView.
listView1.LargeImageList = imageListLarge;
listView1.SmallImageList = imageListSmall;

// Add the ListView to the control collection.
this.Controls.Add(listView1);
}


int n = 0;
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection select=new ListView.SelectedListViewItemCollection (listView1);
// ListView.ListViewItemCollection select = new ListView.ListViewItemCollection(listView1);
foreach (ListViewItem item in select )
{// تعداد اتیمها داخل لیست ویو 3 تا است
n=item.Index;
}

switch (n)
{
case 0:
{
Text = listView1.Items[n].Text;
}
break ;
case 1:
{
MessageBox.Show(n.ToString());
}
break;
case 2:
{
this.BackColor = Color.Yellow;
}
break;
//.....
}
}

private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
}