webmail123 Ответов: 1

Копирование выбранного элемента из списка через контекстное меню


Я пытаюсь скопировать выбранный элемент из listview и вставить его в другое текстовое поле с помощью контекстного меню.

Что я уже пробовал:

private void mnuPaste_click(object sender, EventArgs e)
{
    IDataObject idata = Clipboard.GetDataObject();
    if(idata.GetDataPresent(DataFormats.Text))
    {
        txtdemo.text=(String)idata.GetData(DataFormats.Text);
    }
}


Я попытался вставить текст в код. И я могу вставить текст в другое текстовое поле. Я не смог скопировать элемент из listview.

Я последовал за ним https://www.codeproject.com/Articles/5952/Context-Menu-for-ListView-Column-Manipulation для справки. Это хорошая информация, но не удалось найти информацию, чтобы получить значение выбранного элемента.

phil.o

Пожалуйста, покажите код, который присваивает текстовое значение буферу обмена.

webmail123

Я попытался получить доступ к свойству Listview1.SelectedItem, но я использую Windows SDK 6.0 для мобильной разработки, я не могу получить доступ к этому свойству.

phil.o

Это не мой вопрос :)
Вы показали ту часть, которую вставляете из буфера обмена. Мы хотели бы иметь ту часть, где вы находитесь копирование в буфер обмена.

webmail123

Я попробовал этот вариант (который был просто экспериментальным)
Буфер обмена.SetDataObject(listView1.SelectedIndices[0].Метод toString());

Но очевидно, что он возвращает значение индекса. Только не текст. :-(

phil.o

Затем вы должны поместить точку останова в эту строку, lauch сеанс отладки (F5) и посмотреть, какое из свойств listview на самом деле содержит нужное вам значение.

webmail123

Ну, используя .Net 3.5 compact framework. Так что работаем над этим. Хотя Спасибо за вклад.. :-)

1 Ответов

Рейтинг:
8

webmail123

Я использую.Net compact framework поэтому я не смог выполнить копирование строки выбранного элемента и поместить ее в буфер обмена. Но теперь я это сделал.

Вот что я сделал:

private void mnuCopy_click(object sender, EventArgs e)
{
    string ind1 = listView1.SelectedIndices[0].ToString();
    int ind2 = Convert.ToInt16(ind1);
    string item = listView1.Items[ind2].Text; //here I got the string of selected item
    Clipboard.SetDataObject(item);
}