[英]How can i disable right click menu if there is no item selected in listview
基本上我有contextmenustrip和listview,我向上下文menustrip添加了功能,如delete update等,但是我不希望在沒有單擊的情況下打開此菜單並選擇listview中的任何項目,我該怎么辦?
#region listview fonksiyonları
listView1.FullRowSelect = true;
listView1.View = View.Details;
listView1.Columns.Add("Versiyon No", 133, HorizontalAlignment.Left);
listView1.Columns.Add("Açıklama", 200, HorizontalAlignment.Left);
listView1.Columns.Add("Tarih", 154, HorizontalAlignment.Left);
#endregion
#region listviewde txt dosyalarını gösterme
string[] dosyalar = System.IO.Directory.GetFiles(masaustu + "\\Versiyonlar");
string k = "";
int deger = 0;
foreach (var item in dosyalar)
{
ListViewItem lili = new ListViewItem();
deger=item.LastIndexOf("\\");
k = item.Remove(0,deger);
k = k.Remove(0, 1);
lili.Text = k;
StreamReader oku = new StreamReader(masaustu + "\\" + "Versiyonlar" + "\\" + k);
string OkunanVeri = oku.ReadToEnd();
string[] dizi = OkunanVeri.Split(new string[] { ";", "$" }, StringSplitOptions.RemoveEmptyEntries);
lili.SubItems.Add(dizi[0]);
lili.SubItems.Add(dizi[1]);
listView1.Items.Add(lili);
}
}
#endregion
#region txt içindekileri textboxda göstermek
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
liste frm = new liste();
try
{
string a = "";
a = "";
a = listView1.SelectedItems[0].SubItems[0].Text;
StreamReader oku = new StreamReader(masaustu + "\\" + "Versiyonlar" + "\\" + a);
string OkunanVeri = oku.ReadToEnd();
string[] dizi = OkunanVeri.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in dizi)
{
textBox1.Text = OkunanVeri;
}
oku.Close();
}
catch
{
}
}
這是列表視圖代碼,我不確定是否可以幫助您,但您可能需要檢查一下
您可以訂閱ContextMenuStrip的打開事件,如果列表視圖中沒有選擇,請將e.Cancel設置為true,這將阻止打開上下文菜單。
請查看https://msdn.microsoft.com/de-de/library/ms229721(v=vs.110).aspx了解更多詳細信息!
您有一個ContextMenuStrip cms,可在Windows窗體設計器或代碼中在其中添加事件處理程序
cms.Opening += new System.ComponentModel.CancelEventHandler(this.cms_Opening);
在事件處理程序內部,您檢查是否在列表視圖中選擇了一個項目,以確定是否要打開或關閉上下文菜單。
void cms_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
// This event handler is invoked when the ContextMenuStrip
// control's Opening event is raised.
// Set Cancel to true to prevent the cms to be opened.
e.Cancel = listView1.Selected == null;
}
因此,如果您在listView1中有一個選定的項目,則將打開上下文菜單,否則它將不會顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.