Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20353|Отговор: 0

[WinForm] C# получава съдържанието на клетка чрез десен клик върху мишката в listview

[Копирай линк]
Публикувано в 29.01.2015 г. 15:15:34 ч. | | |

Когато кликнем с десен бутон върху контрола ListView, можем да получим отделното текстово съдържание на избрания елемент.
Сега искаме да получим само текстовото съдържание на клетката, когато кликнем с десен бутон.
Ето как:
1. Дефинирайте глобалното състояние на мишката
Точка m_MBRpt; Когато кликнете с десен бутон Point
2. Обработете съобщението в listView, когато се натисне мишката
        private void listView1_MouseDown(object sender, MouseEventArgs e)
        {
            //
            ако (e.Button==MouseButtons.Right)
            {
                Вземете координатите на екранната мишка и ги конвертирайте в координатите на контролите на списъка
                m_MBRpt = listView1.PointToClient(Control.MousePosition);
            }

        }
3. Меню с десен бутон – съобщението на елемента за копиране
        private void COPYITEM_Click(object sender, EventArgs e)
        {
            Копирайте съдържанието на посочената клетка в таблицата
            ако (listView1.SelectedItems.Count <= 0)
            {
                MessageBox.Show("Няма избрана информация за транзакция!") , "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
                връщане;
            }

            Вземете координатите на екранната мишка и ги конвертирайте в координатите на контрола за списък (обработете и запазите при натискане на мишката).
            Point pt = listView1.PointToClient(m_MBRpt);

            ListViewItem lstrow = listView1.GetItemAt(m_MBRpt.X, m_MBRpt.Y);
            System.Windows.Forms.ListViewItem.ListViewSubItem lstcol = lstrow. GetSubItemAt(m_MBRpt.X, m_MBRpt.Y);
            string strText = lstcol. Текст;
            Задайте на дъската за залепване
            SetClipboardText(strText);

        }
4. Задайте съдържанието на дъската за лепене
        public void SetClipboardText(string strText)
        {
            Опитай
            {
                Clipboard.SetDataObject(strText);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex. Message, "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Error);            
            }
            
        }




Предишен:Кодове за грешки и решения на Dell Server Edition 2013
Следващ:DIV+CSS закръглени граници
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com