簡體   English   中英

如果未在列表視圖中選擇任何項目,如何禁用右鍵單擊菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM