Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отловить данные элемента ListView, По которому кликнул пользователь 
V
    Опции темы
Freyzer
  Дата 1.3.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



 Вновь туплю, немогу из листвьюва открыть файл в дочерней форме.
В листвьюве выводиться массив файлов с раширением *.rtf, а вот как 
открыть файл в richtextbox  дочерней формы по клику в листвьюве, не знаю. Тупо завис. ЖУТЬ :(


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 1.3.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Модератор: Название темы должно отражать ее суть!


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 1.3.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



diadiavova а где можно заголовок темы поменять ? 


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 1.3.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



По сабжу
Код

    Dim lastActiveItem As ListViewItem
    Private Sub ListView1_ItemMouseHover(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.ListViewItemMouseHoverEventArgs) _
Handles ListView1.ItemMouseHover
        lastActiveItem = e.Item
    End Sub

    Private Sub ListView1_MouseClick(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles ListView1.MouseClick
        MsgBox(lastActiveItem.Text)
    End Sub

Цитата(Freyzer @  1.3.2010,  14:43 Найти цитируемый пост)
diadiavova а где можно заголовок темы поменять ?

Заголовок темы можно будет менять когда наберёшь больше 1000 полезных сообщений, сейчас я сам поменяю, но на будущее имей в виду.

Это сообщение отредактировал(а) diadiavova - 1.3.2010, 14:50


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 1.3.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



Ок, ладно уж, прям уж хулиган злостный :(


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
Freyzer
Дата 1.3.2010, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



Что - то я завис, не понимаю ? 

Код

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.IO

Public Class Form1
    Dim lastActiveItem As ListViewItem
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim I As Integer
        Dim ch As New Form
        Dim RichTextBox1 As New RichTextBox1
        For I = 0 To ListView1.SelectedItems.Count - 1
            ch.TopLevel = False
            ch.Show()
            ListView1.Controls.Add(ch)
            ch.Location = New Point(0, 10)
            ch.Controls.Add(RichTextBox1)
            RichTextBox1.Dock = DockStyle.Fill
        Next
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For Each file As String In IO.Directory.GetFiles("Диск:\Бла", "*.rtf")
            Dim fInfo As New FileInfo(file)
            Dim lvitem As ListViewItem = ListView1.Items.Add(Path.GetFileNameWithoutExtension(fInfo.FullName))
        Next
    End Sub

    Private Sub ListView1_ItemMouseHover(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.ListViewItemMouseHoverEventArgs) _
    Handles ListView1.ItemMouseHover
        lastActiveItem = e.Item
    End Sub

    Private Sub ListView1_MouseClick(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles ListView1.MouseClick
        MsgBox(lastActiveItem.Text)
    End Sub

    Public Class RichTextBox1
        Inherits RichTextBox
    End Class
End Class


:(


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 1.3.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Freyzer, в чём вопрос то? Я привёл пример того как можно определить по какому элементу кликнули, что ещё нужно? Или мне надо проанализировать твой код для того чтобы понять что тебе не ясно? smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 1.3.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



Да, нехватает меня вот на это:

Код

RichTextBox1.LoadFile(?)



--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 1.3.2010, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



А какие с этим проблемы то? Я так понимаю, адрес файла у тебя содержится в элементе по которому ты кликаешь, как отловить элемент я показал, а извлечь инфу из него...в этом что ли проблема?
Код

RichTextBox1.LoadFile("C://targetfolderpath/" & lastActiveItem.Text & ".rtf")
Хотя лучше имя файла передавать свойству Tag каждого элемента списка при его инициализации и потом спокойно считывать.

Добавлено через 1 минуту и 50 секунд
И кстати: в вопросе ты сначала хотел открыват окно по клику на элементе, а в коде почему-то делаешь это в обработчике клика по кнопке. И окошко с ричтекстбоксом лучше всё-таки в дизайнере создать, а не в обработчике клика.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 3.3.2010, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



   Ничего не понимаю, мистика какая – то, третий день пошел, как над этим бьюсь, ноль полный :(
Я вот код привожу, постарался в нем весь мусор вычистить и все в нем работает до момента загрузки файла в ричтекстбокс после, программа просто вылетает. В чем проблема? Ведь путь до файла видит, имя файла тоже. А вот плюет на это – “.rtf” (иллегал ваш символ):

Код

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.IO

Public Class Form1
    Private startup_path As String = "C:\MyDoc\"
    Dim lastActiveItem As ListViewItem


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListView1.MultiSelect = True
        Dim pattern As String = "*.rtf"
        ListView1.Items.Clear()
        Dim dir_info As New DirectoryInfo(startup_path)
        ListFiles(ListView1, pattern, dir_info)
    End Sub

    Private Sub ListFiles(ByVal lst As Windows.Forms.ListView, ByVal pattern As String, ByVal dir_info As DirectoryInfo)
        Dim fs_infos() As FileInfo = dir_info.GetFiles(pattern)
        For Each fs_info As FileInfo In fs_infos
            Dim newFileItem As ListViewItem = _
            ListView1.Items.Add(Path.GetFileNameWithoutExtension(fs_info.Name) & vbNewLine)
        Next fs_info
        fs_infos = Nothing
    End Sub

    Private Sub ListView1_ItemMouseHover(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.ListViewItemMouseHoverEventArgs) _
    Handles ListView1.ItemMouseHover
        lastActiveItem = e.Item
    End Sub

    Private Sub ListView1_MouseClick(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles ListView1.MouseClick
        Dim I As Integer
        Dim ch As New Form
        Dim RichTextBox1 As New RichTextBox1
        For I = 0 To ListView1.SelectedItems.Count - 1
            ch.TopLevel = False
            ch.Show()
            ListView1.Controls.Add(ch)
            ch.Location = New Point(0, 10)
            ch.Controls.Add(RichTextBox1)
            RichTextBox1.Dock = DockStyle.Fill
            RichTextBox1.LoadFile(startup_path & lastActiveItem.Text & ".rtf")
        Next
    End Sub

    Public Class RichTextBox1
        Inherits RichTextBox
    End Class
End Class


Я уже, как только исправить не пытался, одна и та же ошибка. Все что выжал “Invalid at the top level of the document. Error processing resource”. И чтобы это значило?

Цитата

И окошко с ричтекстбоксом лучше всё-таки в дизайнере создать, а не в обработчике клика.


Попробовал, что - то мне это не помогло.


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 3.3.2010, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Freyzer @  3.3.2010,  07:07 Найти цитируемый пост)
            ListView1.Items.Add(Path.GetFileNameWithoutExtension(fs_info.Name) & vbNewLine)

А вот это ещё зачем & vbNewLine? Когда имена файлов добавлялись в текстбокс это надо было для того, чтобы каждое имя на новой строке выводилось, а в листбоксе это не нужно, там и так каждый пункт отдельно отображается, а вот когда ты из этого пытаешься имя файла построить, то эти символы тебя и подводят. Кроме того я тебе в конце того поста написал, что лучше при инициализациив айтемы передавать имена файлов полностью, упомянул свойство Tag, но ты это дело проигнорировал. Не пытайся копипастить примеры, старайся в них разобраться, я тебе показываю как решить проблему, а не даю готовый код.
Итак исправь следующее : вместо 23 строки напиши
Код

Dim newItem = ListView1.Items.Add(Path.GetFileNameWithoutExtension(fs_info.Name))
newItem.Tag = fs_info.FullName
А 47-ю строку замени на следующее
Код

 RichTextBox1.LoadFile(lastActiveItem.Tag.ToString())

Цитата(Freyzer @  3.3.2010,  07:07 Найти цитируемый пост)
Попробовал, что - то мне это не помогло. 

И не должно было, я просто написал как сделать "по уму".

Это сообщение отредактировал(а) diadiavova - 3.3.2010, 14:00


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 3.3.2010, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



Аха, что - то отловил, вот выскочила ошибка на строке, на которую я и грешил, если говорить по нашему, звучит примерно так: "Созданный ваш модуль и источник не имеют связи". И все тот же (иллегал ваш символ). Попробую разобраться, благо, еще только вечер.

Вот тут:

Код

ch.TopLevel = False



--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 3.3.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Freyzer @  3.3.2010,  14:22 Найти цитируемый пост)
ch.TopLevel = False

А это вообще зачем? smile

Добавлено через 4 минуты и 12 секунд
Блин я посмотрел сейчас, что ты намудрил в маузклике...ужас. Я думаю придётся пример писать, быстрее будет.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Freyzer
Дата 3.3.2010, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 12.12.2009
Где: на Марсе

Репутация: нет
Всего: 1



Заработало, даже не знаю, то ли радоваться, то ли огорчаться своей нехватки знаний :(

А вот это я просто на потом оставил: 

Цитата

Хотя лучше имя файла передавать свойству Tag каждого элемента списка при его инициализации и потом спокойно считывать.


Tag, в чем особенность ? Только не MSDN, там настолько доступно все описанно, что после прочтения, понимаешь, ничего не понял. Может есть где более доступное описание ?

Добавлено через 7 минут и 24 секунды
Если честно, неудобно, но пример не помешает  smile 


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 3.3.2010, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Вот пример.

Цитата(Freyzer @  3.3.2010,  14:42 Найти цитируемый пост)
Tag, в чем особенность 

Туда можно передавать любые пользовательские данные. В данном случае тебе надо было связать элемент списка с именем файла, вот я и передал этому свойству имя файла.

Это сообщение отредактировал(а) diadiavova - 3.3.2010, 15:03

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  RtbShow.rar 97,34 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.