PDA

View Full Version : مبتدی: راست كليك در listview



melika999
یک شنبه 02 آبان 1389, 13:25 عصر
با سلام
من به ليست ويو يه context menu اختصاص دادم كه تو رويداد opening اين كد نوشته ميشه

ListViewItem Lvi = new ListViewItem();
Lvi = listView1.SelectedItems[0]l;
حالا با اين اوضاع من حتما بايد روي آيتم راست كليك كنم ولي من ميخوام تو فضاي آزاد ليست ويو راست كليك كنم
ممنون ميشم اگه راهنمايي كنيد

melika999
یک شنبه 02 آبان 1389, 13:27 عصر
من با name ليست ويو كه فيلد كليد ديتا بيس منه با ديتابيس ارتباط بر قرار ميكنم

mahdi87_gh
یک شنبه 02 آبان 1389, 13:29 عصر
لطفا هدفتون رو از این کار بگین، توی context menu میخواین چیکار کنین؟

melika999
یک شنبه 02 آبان 1389, 13:35 عصر
من با name ليست ويو كه فيلد كليد ديتابيس هست يه سري ركورد سلكت ميكنم و به ليست ويو اضافه ميكنم و توي راست كليك روي آيتم ها براشون Update و همچنين اضافه كردن مينويسم
متوجه شدين اگه نه بيشتر توضيح بدم

mahdi87_gh
یک شنبه 02 آبان 1389, 13:39 عصر
من با name ليست ويو كه فيلد كليد ديتابيس هست يه سري ركورد سلكت ميكنم و به ليست ويو اضافه ميكنم و توي راست كليك روي آيتم ها براشون Update و همچنين اضافه كردن مينويسم
متوجه شدين اگه نه بيشتر توضيح بدم

به نظرم بهتره برای این کارها از grid استفاده کنید. و همچنین برای update کردن بهتره از یک button که در همه سطرها وجود داره استفاده کنید

melika999
یک شنبه 02 آبان 1389, 13:43 عصر
كلا نميشه يه كاري كرد كه هم روي آيتم راست كليك كنه و هم درفضاي آزاد
من فكر ميكنم يه شرط ميخواد كه تشخيص بده آيتم انتخاب شده يا نه
ميتونين كمكم كنين

mahdi87_gh
یک شنبه 02 آبان 1389, 13:51 عصر
دوست عزیز به کدهای زیر نگاه کن ببین بدردت میخوره.

private void Form1_Load(object sender, EventArgs e)
{
listView1.Items.Add(new ListViewItem("item1"));
listView1.Items.Add(new ListViewItem("item2"));
listView1.Items.Add(new ListViewItem("item3"));
listView1.Items.Add(new ListViewItem("item4"));
}

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
mnuUpdate.Enabled = listView1.SelectedItems.Count != 0;
}

در ضمن اگر شما خاصیت contextMenu مربوط به listview رو ست کرده باشین در هر جایی از اون کلیک راست کنید منو رو نشون میده!!!

melika999
یک شنبه 02 آبان 1389, 13:58 عصر
[code]
ListViewItem Lvi = new ListViewItem();


Lvi = listView1.SelectedItems[0];
String SystemKey = Lvi.Name;
String SystemText = Lvi.Text;
Int32 Key = Convert.ToInt32(SystemKey);


#endregion
DataBaseCn D = new DataBaseCn();
DataTable DtKEyStatuse = new DataTable();
DtKEyStatuse = D.selectKey(Key);
Boolean BSStatus = Convert.ToBoolean(DtKEyStatuse.Rows[0]["SystemStatuse"]);
Boolean Position = Convert.ToBoolean(DtKEyStatuse.Rows[0]["SystemPosition"]);
if (Position == true)
{
Start.Visible = false;
}
else
{
Start.Visible = true;
if (BSStatus == true)
{
Start.Text = "خروج";
barresi.Enabled = true;
}
else
{
Start.Text = "شروع";
barresi.Enabled = false;


}
}


[code\]

melika999
یک شنبه 02 آبان 1389, 14:01 عصر
ببينيد اين كد من تو راست كليك خيلي چيزا واسه كاربر مشخص ميشه،فكر كنم الان بهتر متوجه شده باشين
در اين صورت چه جوري ميشه تو فضاي آزاد ليست ويو راست كليك كرد؟

mahdi87_gh
یک شنبه 02 آبان 1389, 14:16 عصر
دوست عزیز اولا که وقتی میخواین کدی رو اینجا قرار بدین، اون رو بین دو تگ کد بذارین:افسرده:

من برنامه این کدی که خودم نوشتم رو میزارم اینجا، فرض من بر این بوده ک شما میخواین وقتی روی یک آیتم انتخاب شده کلیک راست می کنید، یک سری از گزینه ها فعال و وقتی روی جای خالی لیست ویو کلیک میکنید، یه سری گزینه ها غیرفعال باشه. سایر چیزهای اضافی رو دیگه خودتون اضافه کنید به این سناریو

melika999
یک شنبه 02 آبان 1389, 14:25 عصر
ممنون درست شد