Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Ответить
Настройки темы
VBA - Visual Basic 2008

Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Uzvern
Дата: 24-04-2008
Описание: Забыл дописать название темы. Прошу простить.
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).

Спасибо за внимание.

>>Блин, не дописал в названии темы : Действие при нажатии правой кнопки

Отправлено: 17:47, 24-04-2008

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


В смысле что то типа picker'а? Т.е. написал я текст, а потом ткнул мышкой, и текст стал цвета пикселя на картинке? Можешь пример хоть примерно нарисовать?

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:31, 08-10-2008 | #291



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Помогите отловить сообщение Windows о подтверждении удаления файла/папки и нажать кнопку "Нет".

Отправлено: 19:37, 28-10-2008 | #292


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Uzvern, а в когда оно появляется? Имеется в виду, в вашей программе или где? Это же по сути простой MessageBox с vbYesNo.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:38, 29-10-2008 | #293


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Цитата Uzvern:
сообщение Windows »
Не в моей программе, а в самом Windows когда удаляешь какой - либо файл.

Отправлено: 12:18, 29-10-2008 | #294


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


хмм. а отслеживать необходимо через свою программу? Единственный вариант, который приходит в голову - отслеживать появление окон с заголовком "подтверждение удаления файла" и программно нажимать "нет". AutoIT работает по такому принципу.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:22, 30-10-2008 | #295


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Uzvern, есть исходник на С++ http://ja.pastebin.ca/raw/890971
Результат
,
а в теме есть примеры использования WinApi функций в VB.NET, которые присутствуют в данном C++ исходнике.

Данную защиту можно обойти использовав не Експлоре, например через FAR, TotalCommander и другие файловые менеджеры удалить файл всё же получится.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:45, 30-10-2008 | #296


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Admiral, а обход мне неочень интересен, т.к. человек все-равно до этого не додумается. Щас буду пробовать переводить код с С++ в VB

Отправлено: 08:30, 30-10-2008 | #297


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток, Уважаемые обитатели форума!
Я начал изучать VB совсем недавно, примерно 1,5 месяца назад.
Поиск на форуме мне к сожалению не помог, т.к. проблема видимо слишком простая и скорее всего не обсуждалась. А суть проблемы такова: нужно при нажатии кнопки Button2 сохранить данные из ListBox1в файл с расширением *.xls, ну или хотя бы в *.txt
На машине установлено:
Visual Studio 2008 Express, а в качестве офисного приложения OpenOffice 3.0 (MSOffice нет.)
Собственно, если нет прямой возможности сохранить в *.xls, текстовый файл вполне подойдет.

Вот текст приложения:

Public Class Form2

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'ЗАПОЛНЕНИЕ ФОРМЫ СИСТЕМНОГО БЛОКА
'Системный блок
ListBox1.Items.Add(GroupBox7.Text)
ListBox1.Items.Add(Label4.Text)
ListBox1.Items.Add(TextBox4.Text)
ListBox1.Items.Add(Label17.Text)
ListBox1.Items.Add(TextBox5.Text)
'Материнская плата
ListBox1.Items.Add(GroupBox1.Text)
ListBox1.Items.Add(Label5.Text)
ListBox1.Items.Add(ComboBox1.Text)
ListBox1.Items.Add(Label6.Text)
ListBox1.Items.Add(TextBox7.Text)
'Блок питания
ListBox1.Items.Add(GroupBox2.Text)
ListBox1.Items.Add(Label8.Text)
ListBox1.Items.Add(ComboBox2.Text)
ListBox1.Items.Add(Label7.Text)
ListBox1.Items.Add(TextBox9.Text)
'HDD
ListBox1.Items.Add(GroupBox3.Text)
ListBox1.Items.Add(Label10.Text)
ListBox1.Items.Add(ComboBox3.Text)
ListBox1.Items.Add(Label9.Text)
ListBox1.Items.Add(TextBox11.Text)
'FDD
ListBox1.Items.Add(GroupBox4.Text)
ListBox1.Items.Add(Label12.Text)
ListBox1.Items.Add(ComboBox4.Text)
ListBox1.Items.Add(Label11.Text)
ListBox1.Items.Add(TextBox13.Text)
'DVD
ListBox1.Items.Add(GroupBox5.Text)
ListBox1.Items.Add(Label14.Text)
ListBox1.Items.Add(ComboBox5.Text)
ListBox1.Items.Add(Label13.Text)
ListBox1.Items.Add(TextBox15.Text)
'Сетевая карта
ListBox1.Items.Add(GroupBox6.Text)
ListBox1.Items.Add(Label16.Text)
ListBox1.Items.Add(ComboBox6.Text)
ListBox1.Items.Add(Label15.Text)
ListBox1.Items.Add(TextBox17.Text)
'Видеокарта
ListBox1.Items.Add(GroupBox7.Text)
ListBox1.Items.Add(Label18.Text)
ListBox1.Items.Add(ComboBox7.Text)
ListBox1.Items.Add(Label19.Text)
ListBox1.Items.Add(TextBox19.Text)
'Очистка заполненных строк
TextBox4.Clear()
TextBox5.Clear()
TextBox7.Clear()
TextBox9.Clear()
TextBox11.Clear()
TextBox13.Clear()
TextBox15.Clear()
TextBox17.Clear()
TextBox19.Clear()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Заполнение формы заказа
ListBox1.Items.Add(Label1.Text)
ListBox1.Items.Add(TextBox1.Text)
ListBox1.Items.Add(Label2.Text)
ListBox1.Items.Add(TextBox2.Text)
ListBox1.Items.Add(Label3.Text)
ListBox1.Items.Add(TextBox3.Text)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

End Sub

Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk

End Sub

Private Sub GroupBox8_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox8.Enter

End Sub
End Class

Спасибо.

Отправлено: 17:57, 03-11-2008 | #298


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


paul_p, приветствую.
Цитата paul_p:
нужно при нажатии кнопки Button2 сохранить данные из ListBox1в файл с расширением *.xls»
на первый взгляд, если установка Excel не предусмотрена, всё вроде просто Creating an Excel spreadsheet XLS file direct from your .Net app with SpeadsheetGear да вот только SpeadsheetGear стоит денег
Цитата paul_p:
ну или хотя бы в *.txt »
Код: Выделить весь код
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim File As Integer = FreeFile()
        FileOpen(File, "MyFile.txt", OpenMode.Append)
        For i As Integer = 0 To ListBox1.Items.Count - 1
            PrintLine(File, ListBox1.Items.Item(i))
        Next i
        FileClose(File) 
End Sub
в теме уже было рассказано про сохранение в файл.

А компоненты GroupBox1, GroupBox2, .., GroupBox7, TextBox, Label1, Label2, .., Label19, TextBox1, TextBox2, .., TextBox19 нужны именно в таком количестве?

Между прочим код можно немного преобразовать с помощью операторов With и End With что уже было показано в теме
результат по данному примеру

Код: Выделить весь код
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'ЗАПОЛНЕНИЕ ФОРМЫ СИСТЕМНОГО БЛОКА
        'Системный блок
        With ListBox1.Items

            .Add(GroupBox7.Text)
            .Add(Label4.Text)
            .Add(TextBox4.Text)
            .Add(Label17.Text)
            .Add(TextBox5.Text)
            'Материнская плата
            .Add(GroupBox1.Text)
            .Add(Label5.Text)
            .Add(ComboBox1.Text)
            .Add(Label6.Text)
            .Add(TextBox7.Text)
            'Блок питания
            .Add(GroupBox2.Text)
            .Add(Label8.Text)
            .Add(ComboBox2.Text)
            .Add(Label7.Text)
            .Add(TextBox9.Text)
            'HDD
            .Add(GroupBox3.Text)
            .Add(Label10.Text)
            .Add(ComboBox3.Text)
            .Add(Label9.Text)
            .Add(TextBox11.Text)
            'FDD
            .Add(GroupBox4.Text)
            .Add(Label12.Text)
            .Add(ComboBox4.Text)
            .Add(Label11.Text)
            .Add(TextBox13.Text)
            'DVD
            .Add(GroupBox5.Text)
            .Add(Label14.Text)
            .Add(ComboBox5.Text)
            .Add(Label13.Text)
            .Add(TextBox15.Text)
            'Сетевая карта
            .Add(GroupBox6.Text)
            .Add(Label16.Text)
            .Add(ComboBox6.Text)
            .Add(Label15.Text)
            .Add(TextBox17.Text)
            'Видеокарта
            .Add(GroupBox7.Text)
            .Add(Label18.Text)
            .Add(ComboBox7.Text)
            .Add(Label19.Text)
            .Add(TextBox19.Text)
            'Очистка заполненных строк
        End With
'...
End Sub
'...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Заполнение формы заказа
        With ListBox1.Items
            .Add(Label1.Text)
            .Add(TextBox1.Text)
            .Add(Label2.Text)
            .Add(TextBox2.Text)
            .Add(Label3.Text)
            .Add(TextBox3.Text)
        End With

    End Sub


На форуме код рекомендуется помещать между тегами [code]'здесь код[/code] .
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:22, 04-11-2008 | #299


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Admiral! Большое спасибо!
По всей видимости, я не совсем корректно воспользовался сервисом поиска (учту на будущее)
Тегом "code" тоже буду пользоваться обязательно, действительно удобно отделять код от текста.
Что же касается большого количества TextBox, то это обусловлено самой формой. Дело в том, что тот кто будет заполнять форму должен видеть все поля сразу, т.к. приходится их заполнять одновременно. А выбирать пункт из меню менее удобно, чем заполнять видимый.
Данная форма предназначена для многократного заполнения однотипной информации: №системного блока, серийный номер материнской платы и.т.д...

Немного доработал код сохранения в файл. Вот что получилось:

Код: Выделить весь код
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        SaveFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt"
        SaveFileDialog1.ShowDialog()
        If SaveFileDialog1.FileName <> "" Then
            FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)
            For i As Integer = 0 To ListBox1.Items.Count - 1
                PrintLine(1, ListBox1.Items.Item(i))       'копируем текст на диск
            Next i
            FileClose(1)
        End If

    End Sub

Последний раз редактировалось paul_p, 04-11-2008 в 23:38. Причина: Добавление информации


Отправлено: 11:20, 04-11-2008 | #300



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - MS Visual Basic 2008 Expres Edition файлы проекта Anton Naumov Программирование и базы данных 7 14-05-2010 14:09
VBA - Visual basic 2008 Anton Naumov Программирование и базы данных 1 02-01-2010 22:35
visual basic 6 иоанн Хочу все знать 1 27-04-2009 18:51
visual basic 6 guma Программирование и базы данных 1 26-04-2007 20:41
Visual basic carlos Программирование и базы данных 1 04-08-2003 02:03




 
Переход