2016-07-22 2 views
0

基本的に私はcontextmenustripと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のオープニングイベントを購読することができ

答えて

0

を、それをチェックアウトする場合があります場合は確認していないとリストビューのコードは、あなたのリストビューセットには選択が存在しない場合e。コンテキストメニューが開かないようにするにはtrueにしてください。

詳細はhttps://msdn.microsoft.com/de-de/library/ms229721(v=vs.110).aspxをご覧ください。

あなたはあなたがあなたのコンテキストメニューをしたいかどうかを判断するために選択した自分のリストビューでアイテムを得た場合、あなたがチェックし、あなたのイベントハンドラ内のコード

cms.Opening += new System.ComponentModel.CancelEventHandler(this.cms_Opening); 

Windowsフォームデザイナでかのいずれかでイベントハンドラを追加しているContextMenuStripのCMSを持っていますオープンまたはクローズ。あなたはListView1のあなたのコンテキストメニューで選択した項目を得た場合

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; 
} 

だから、それ以外の場合は表示されません開かれます。

+0

ありがとうございますが、私はあまりにも多くのcna oyu私にも例を与えて理解できないのですか? @SomeCoder –

関連する問題