2015-09-01 3 views
0

Мне сложно объяснить, что я пытаюсь сделать, поэтому поиск в Google не работал. Голый со мной.Использование одной формы для обработки нескольких задач

У меня есть форма Windows, которую я использую как msgbox. У меня есть 10 кнопок, которые я хочу, чтобы все пошли в форму Shutdownbox, но каждая из 1 из 10 кнопок должна изменить часть строки Command. Единственный способ, которым я могу думать, - это 10 различных форм для этого ... но должен быть лучший способ.

Пример: ShutdownButton1 щелкнул, помещает REMOTEPC1.Text в поле. Или, если кнопка 2, сделайте remotePC2, ect.

Код:

Public Class ShutdownBox 

Private Sub shutdown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles shutdown.Click 
    Dim command As String = "/C ""net use \\" & REMOTEPC1.Text & "\IPC$ PASSWORD /USER:DOMAIN\USERNAME& shutdown /s /f /t 01 /m \\" & REMOTEPC1.Text & "\""" 

    Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
    If result = DialogResult.No Then 
     Exit Sub 
     Me.Close() 
    ElseIf result = DialogResult.Yes Then 
     Process.Start("cmd", command) 
     Me.Close() 
    End If 
End Sub 
End Class 

Еще раз, извините, его трудно объяснить.

EDIT: изображение, чтобы попытаться помочь enter image description here

+0

Устанавливать переменные обработчиков щелчков кнопок. Довольно маловероятно, что вы должны использовать только кнопки btw, вы должны предоставить обратную связь пользователю, когда у вас есть многие из них. Если они не являются RadioButtons. Бросьте несколько ярлыков на него, и он также станет простым в вашем коде. –

+0

@HansPassant Можете ли вы дать мне пример того, как он устанавливает переменную для этого, пожалуйста? – dwb

+0

Когда я нажимаю на одну из кнопок выключения, вызывается ShutdownBox.show() – dwb

ответ

1

Первая форма ...

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 
    If TextBox1.Text = "" Then 
     TextBox1.BackColor = Color.Tomato 
    Else 
     TextBox1.BackColor = Color.White 
     Form2.Text = TextBox1.Text 
     Form2.Show() 
    End If 
End Sub 

Private Sub PictureBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox6.Click 
    If TextBox2.Text = "" Then 
     TextBox2.BackColor = Color.Tomato 
    Else 
     TextBox2.BackColor = Color.White 
     Form2.Text = TextBox2.Text 
     Form2.Show() 
    End If 
End Sub 

Private Sub PictureBox9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox9.Click 
    If TextBox3.Text = "" Then 
     TextBox3.BackColor = Color.Tomato 
    Else 
     TextBox3.BackColor = Color.White 
     Form2.Text = TextBox3.Text 
     Form2.Show() 
    End If 
End Sub 

Private Sub PictureBox12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox12.Click 
    If TextBox4.Text = "" Then 
     TextBox4.BackColor = Color.Tomato 
    Else 
     TextBox4.BackColor = Color.White 
     Form2.Text = TextBox4.Text 
     Form2.Show() 
    End If 
End Sub 

Private Sub PictureBox15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox15.Click 
    If TextBox5.Text = "" Then 
     TextBox5.BackColor = Color.Tomato 
    Else 
     TextBox5.BackColor = Color.White 
     Form2.Text = TextBox5.Text 
     Form2.Show() 
    End If 
End Sub 

Private Sub PictureBox18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox18.Click 
    If TextBox6.Text = "" Then 
     TextBox6.BackColor = Color.Tomato 
    Else 
     TextBox6.BackColor = Color.White 
     Form2.Text = TextBox6.Text 
     Form2.Show() 
    End If 
End Sub 

Добавить вторую форму ...

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Process.Start("cmd", "/C ""net use \\" & Me.Text & "\IPC$ PASSWORD /USER:DOMAIN\USERNAME& shutdown /r /f /t 01 /m \\" & Me.Text & "\""") 
    Me.Close() 
End Sub 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    Process.Start("cmd", "/C ""net use \\" & Me.Text & "\IPC$ PASSWORD /USER:DOMAIN\USERNAME& shutdown /s /f /t 01 /m \\" & Me.Text & "\""") 
    Me.Close() 
End Sub 

на этот раз нет необходимости сохранять строкив настройках приложения ...

+0

А я вижу, как вы это сделали, это так просто! The Form2.text = Textbox.text. – dwb

+1

это изменит название формы 2 ... если вы не хотите, чтобы оно изменилось, вы можете использовать метку в форме 2 и изменить это вместо названия форм ... и thwn вы можете скрыть ярлык ... – Chris

3

лично я хотел бы использовать My.Settings .. есть все команды, необходимые для отправки и вызывать их из обработчика событий нажмите ... Я быстро написал, Я надеюсь, что это помогает.

enter image description here

enter image description here

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click 
    If TextBox1.Text = "" Then 
     TextBox1.BackColor = Color.Tomato 
    Else 
     TextBox1.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command1) 
      Me.Close() 
     End If 
    End If 
End Sub 

Private Sub PictureBox6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox6.Click 
    If TextBox2.Text = "" Then 
     TextBox2.BackColor = Color.Tomato 
    Else 
     TextBox2.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command2) 
      Me.Close() 
     End If 
    End If 
End Sub 

Private Sub PictureBox9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox9.Click 
    If TextBox3.Text = "" Then 
     TextBox3.BackColor = Color.Tomato 
    Else 
     TextBox3.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command3) 
      Me.Close() 
     End If 
    End If 
End Sub 

Private Sub PictureBox12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox12.Click 
    If TextBox4.Text = "" Then 
     TextBox4.BackColor = Color.Tomato 
    Else 
     TextBox4.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command4) 
      Me.Close() 
     End If 
    End If 
End Sub 

Private Sub PictureBox15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox15.Click 
    If TextBox5.Text = "" Then 
     TextBox5.BackColor = Color.Tomato 
    Else 
     TextBox5.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command5) 
      Me.Close() 
     End If 
    End If 
End Sub 

Private Sub PictureBox18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox18.Click 
    If TextBox6.Text = "" Then 
     TextBox6.BackColor = Color.Tomato 
    Else 
     TextBox6.BackColor = Color.White 
     Dim result As Integer = MessageBox.Show("Are you sure you want to Shutdown?", "Power Down", MessageBoxButtons.YesNo) 
     If result = DialogResult.No Then 
      Exit Sub 
      Me.Close() 
     ElseIf result = DialogResult.Yes Then 
      Process.Start("cmd", My.Settings.command6) 
      Me.Close() 
     End If 
    End If 
End Sub 
+0

Спасибо за повтор, это почти то, что мне нужно., Но мне также нужна опция для перезапуска. Есть идеи для этого? – dwb

+0

Я бы сделал один подзаголовок, который обрабатывает событие click для всех шести ПБ, а затем просматривает команду на основе отправителя. – clweeks

Смежные вопросы