none
Ошибка в программе после компиляции RRS feed

  • Вопрос

  • Дописала наконец-то свой первый эксперимент на VB.net...
    Но после компиляции программы при запуске дает ошибку, типа графический файл не найден.
    Дело в том сохраняла графические изображения, которые выводятся на форму в папке проекта bin\Debug\images:
               Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Timer1.Stop()
            Timer2.Start()
            PictureBox1.Visible = True
            If Form1.RBrussiaschool.Checked = True Then
                Select Case Pokaz1
                    Case Form1.RB4.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school\1\0" & i & ".gif")
                    Case Form1.RB3.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school\2\0" & i & ".gif")
                    Case Form1.RB2.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school\3\0" & i & ".gif")
                    Case Form1.RB1.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school\4\0" & i & ".gif")
                End Select
            ElseIf Form1.RBschool2100.Checked = True Then
                Select Case Pokaz2
                    Case Form1.RB4.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school2100\1\0" & i & ".gif")
                    Case Form1.RB3.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school2100\2\0" & i & ".gif")
                    Case Form1.RB2.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school2100\3\0" & i & ".gif")
                    Case Form1.RB1.Checked = True
                        PictureBox1.Image = System.Drawing.Image.FromFile("images\school2100\4\0" & i & ".gif")
                End Select
            End If
        End Sub
    Куда эту папку с изображениями нужно поместить, чтобы они сохранились в скомпилированный проект?

    P.s. не совсем понимаю смысл публикации проекта? Поняла лишь одно, что при публикации создается установочный дистрибутив программы, это так?
    • Перемещено SachinW 1 октября 2010 г. 22:18 MSDN Forums Consolidation (От:Начинающие разработчики)
    14 января 2010 г. 18:36

Ответы

  • Ну во-первых необходимо сделать обработчик события нажатия кнопки1 в форме1 как public, а потом вызвать этот обработчик из формы2:

    Public Class Form1
        Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            MessageBox.Show("form1")
        End Sub
    End Class
    
    Public Class Form2
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Form1.Button1_Click(Me, EventArgs.Empty)
        End Sub
    End Class

    • Помечено в качестве ответа I.Vorontsov 18 января 2010 г. 8:34
    17 января 2010 г. 8:30
  • Я так понимаю, это публикация ClickOnce . Здесь для включения файлов в публикацию через "Файлы приложения" на вкладке "Публикация", необходимо сперва добавить все файлы в проект.
    Хорошая статья про ClickOnce (спасибо Ивану за ссылку).

    Может быть использовать Setup Project? Пример .
    Еще почитать про развертывания приложения можно здесь и здесь .

    • Помечено в качестве ответа I.Vorontsov 18 января 2010 г. 8:34
    15 января 2010 г. 10:56

Все ответы

  • Я так понимаю, это публикация ClickOnce . Здесь для включения файлов в публикацию через "Файлы приложения" на вкладке "Публикация", необходимо сперва добавить все файлы в проект.
    Хорошая статья про ClickOnce (спасибо Ивану за ссылку).

    Может быть использовать Setup Project? Пример .
    Еще почитать про развертывания приложения можно здесь и здесь .

    • Помечено в качестве ответа I.Vorontsov 18 января 2010 г. 8:34
    15 января 2010 г. 10:56
  • Еще такой вопросик...
    Изначально в проекте у меня было создано 2 формы. При запуске 1 формы 2 установлено значение невидимая и после события нажатия кнопки на форме 2 начинается показ.
    Вопрос: при запуске на выполнение программы эти 2 формы запускаются одновременно?
    16 января 2010 г. 13:24
  • Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Form2.Visible = True
            Form2.Size = New Size(100, 500)
    
            Dim f2 As Form2 = New Form2()
            f2.Show()
        End Sub
    End Class
    
    
    Public Class Form2
        Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            MessageBox.Show("form2")
        End Sub
    End Class

    Выполнив предыдущий код, получается что Form2 является уже созданной формой, и с которой можно производить теже действия, что и с формой f2. Хотя в msdn сказано, что в VB.Net следующий код приведет к ошибке, у меня почему то все выполнилось без ошибок :(:

    Form2.TextBox1.Text = "Fred"

    имхо мне следующий код роднее, чем просто Form2.Visible = True:

    Dim f2 As Form2 = New Form2()
    f2.Show()


    16 января 2010 г. 16:04
  • Что не так в коде при обращении из формы 2 в форму 1 к процедуре клика по кнопке?
    If (i <= KolVo) Then
                Timer1.Start()
            Else
                n = MsgBox("Вы просмотрели все слова", 32 + 4, "Запуск с начала?")
                If n = 6 Then
                    Me.Close()
                    Form1.Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles form1.Button1.Click
                Else
                    Me.Close()
                End If
            End If
            PictureBox1.Visible = Nothing
    На ByVal пишет что требуется выражение....
    17 января 2010 г. 7:51
  • Ну во-первых необходимо сделать обработчик события нажатия кнопки1 в форме1 как public, а потом вызвать этот обработчик из формы2:

    Public Class Form1
        Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            MessageBox.Show("form1")
        End Sub
    End Class
    
    Public Class Form2
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Form1.Button1_Click(Me, EventArgs.Empty)
        End Sub
    End Class

    • Помечено в качестве ответа I.Vorontsov 18 января 2010 г. 8:34
    17 января 2010 г. 8:30