對于這個控件,我們常用的方式是是直接把他從屬控件的屬性ContextMenuStrip設置為contextMenuStrip1可以保證右鍵菜單位置的正確性。
創新互聯建站是少有的成都網站建設、網站建設、營銷型企業網站、微信平臺小程序開發、手機APP,開發、制作、設計、賣鏈接、推廣優化一站式服務網絡公司,于2013年成立,堅持透明化,價格低,無套路經營理念。讓網頁驚喜每一位訪客多年來深受用戶好評
然而有時候我們為了在一個容器特定的位置出現右鍵菜單,就需要設置ContextMenuStrip的位置了;
S1.聲明一個右鍵菜單控件;
S2.添加右鍵菜單的內容;
S3.設定使右鍵菜單跟隨鼠標點擊位置出現。關鍵的是其中的位置坐標轉換;oView.PointToScreen(e.Location);oView這個對象要選正確,就是要出現右鍵的容器,用他的坐標轉化方法來得到右鍵出現的位置;
這樣可以保證右鍵菜單出現位置正確了。
附一點代碼:
ContextMenuStrip cms = new ContextMenuStrip(); cms.Items.Add("屬性設置"); //坐標轉化保證右鍵菜單出現在點擊的位置 Point p = oView.PointToScreen(e.Location); cms.Show(p); cms.Items[0].Tag = oView; cms.Items[0].Click += ContextMenuStrip_Click;
另外在做這個開發時,我還遇到了另一個問題,我的右鍵是設置一個對象的屬性,然而在這個Click事件中獲取不到這個對象怎么辦?我試著用Tag屬性將需要的值傳遞到單擊事件中進行處理,結果還可以。
//右鍵事件 private void ContextMenuStrip_Click(object sender, EventArgs e) { XX view = ((ToolStripDropDownItem)(sender)).Tag as XX; }
還沒有完全吃透,僅供參考,若有更好方法望留言告知;謝謝
新聞標題:ContextMenuStrip控件位置傳值
當前鏈接:http://m.newbst.com/article12/jocodc.html
成都網站建設公司_創新互聯,為您提供云服務器、自適應網站、動態網站、品牌網站設計、、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯