none
关闭按钮的跳转代码怎么编写? RRS feed

  • 問題

  • 我自己做了个提示的对话框,当按下窗体里面任意地方(窗口栏除外)是可以有一些跳转显示程序主窗体和关闭该对话框的事件代码的?

    但怎么对该对话框的关闭按钮进行类似事件代码的编写呢?怎么引用该对话框的关闭按钮的事件呢?

    难道是:

    dialog1_leave事件内:

    dialog1.closebutton.value=false(乱写的!)

    换句话说,怎么编写对话框的关闭按钮按下时事件的代码?

    2006年8月3日 下午 02:36

解答

  • Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If TextBox1.Text = "" Then
                TextBox1.Focus()
                e.Cancel = True
            End If
        End Sub

    2006年8月8日 上午 01:26

所有回覆

  • Form.Closing 事件

    這是你要的嗎

    2006年8月4日 上午 05:57
  • 谢谢你,我先试一个.
    2006年8月5日 上午 12:39
  •  andysheu 寫信:

    Form.Closing 事件

    這是你要的嗎

    试了好象没有效果啊,应该是Form1.FormClosing

    2006年8月5日 上午 01:14
  • 要配合你程式裡的Form Name囉

    你指的視窗關閉紐,是右上角那個X沒錯吧?

    2006年8月7日 上午 12:56
  • 就是那个大差啦。

    按下那个按钮时触发的事件怎么写呢?

    例如:那个按钮怎么暂时的变灰色disable等。

    2006年8月7日 上午 07:51
  •     Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

    就是這個事件

    disable那個關閉紐我不會

    但可用ControlBox=False 來把它關掉

    2006年8月7日 上午 08:55
  • 首先:ControlBox=False 果然很有效果,感谢兄弟;)

    另外,我使用的是Visual Studio .net 2005,Form1对于上述类似的情况只有formclosing事件和formclosed事件,而不是Closing事件,可能是VS2005版本中的变化!我可能的事件触发如下:

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If TextBox1.Text = "" Then
                TextBox1.Focus()
            Else
                Application.Exit()
            End If
        End Sub

    测试后发现上述代码没有效果!至少没有达到希望的效果~

    而为了达到同样的效果,绝对有效果的另一种方法是使用ControlBox=False,具体如下:

    Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
            ToolStripStatusLabel1.Text = "请在这里输入你的姓名,注意该项不能为空!"
            Me.ControlBox = False
        End Sub

    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
            If TextBox1.Text = "" Then
                MessageBox.Show("姓名不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error)
                TextBox1.Focus()
            Else
                Me.ControlBox = True
            End If
        End Sub

    经过实验,我发现第一种方法并没有效果,因为我依然关闭了程序,虽然同时也有了警告框!如果可能的话,第一种设想是否有方法实现呢?

    2006年8月7日 下午 01:56
  • Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If TextBox1.Text = "" Then
                TextBox1.Focus()
                e.Cancel = True
            End If
        End Sub

    2006年8月8日 上午 01:26
  • e.Cancel=True果然很有效果啊!兄弟真是太强了,我真是佩服啊,我实在是太菜了~

    有没有相关资料介绍啊,就是窗体内控件一些特殊属性事件的触发条件和属性引用的那种资料。

    2006年8月8日 上午 05:23