分析:窗体之间的数值传递有3种方案。分别是通过公共变量、接口和事件委托。我给你说说通过接口来在窗体之间传递数据吧。
创新互联主要从事成都做网站、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务黄平,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
显示"第一位成绩":从form2传值到form1,显示排序,需要传递一个datatable.
为了方便起见,这两个数据都从datatable里面来。
1、首先定义一个公共接口(新建项)(假设传递的是
Public Interface ITransferText
Sub 数据传输(ByVal tText As datatable)
End Interface
2、在form2和form3中加入代码:
Private 数据发送 As ITransferText
Sub New(ByVal iTrans As ITransferText)
Me.iTransferLink = iTrans
InitializeComponent()
End Sub
‘在form2和form3的一个按钮事件中加入:
数据发送.数据传输(dt)
me.dispose
'当然,你需要在这之前将需要传输的东西装类型为datatabe的变量dt中。
3、在form1中加入代码:
(1)Public Class Form1
Implements ITransferText
(2)、sub…点击后form2显示,通过form2操作生成第一位成绩事件…
Dim newFrm As New Form2(Me)
newFrm.Show()
end sub
、sub…点击后form3显示,通过form3操作生成绩列表,然后传递…
Dim newFrm As New Form3(Me)
newFrm.Show()
end sub
(3)当然你还需要在form1中用个方法实现接口
Sub 数据接收(ByVal dt As datatable) Implements ITransferText.数据传递
这里如果dt只有1行1列就更新你的第一名成绩
如果多行,就再你的form1上显示这个表dt就行了。
end sub
切换到设计视图
添加一个sqldatasourse
直接配置他的数据源
在代码中
select * 后面添加
top n 这个N就是显示数据库中前N条记录
VB.NET即时窗口用于在设计时调试和计算表达式、执行语句、输出变量值等
快捷键是:CTRL+G 或者按 CTRL+ALT+I
很简单,原因有二。第一,VB里long是32位,但是VB.NET里是64位,Dim ksWND As Integer才对。第二,VB在API里默认传址,而VB.NET默认传值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef" lpRect As RECT) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,byref lpRect As RECT) As Integer
Private Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ksWND As integer
Dim ksTitle As String
Dim winS As RECT
If TextBox1.Text "" Then
ksTitle = TextBox1.Text
ksWND = FindWindow(vbNullString, ksTitle)
GetWindowRect(ksWND, winS)
MsgBox("左上角坐标(" winS.Left "," winS.Top ")" vbCrLf "右下角坐标(" winS.Right "," winS.Bottom ")" vbCrLf "窗口高" winS.Bottom - winS.Top "窗口宽" winS.Right - winS.Left)
Else
MsgBox("请填写窗口名称")
End If
End Sub
给你一个思路,
1把A窗口(比如是FormA)要控制的控件、成员变量、方法、属性等定义为Public
2然后重写B窗口(FormB)的构造函数,增加一个成员变量,使之用来保存A窗口的引用,比如
Public Partial Class FormB
Private _formA As FormA
Public Sub New(formA As FormA)
_formA = formA
End Sub
'...
End Class
然后我们在FormB中就可以用_formA来控制FormA的内容了
在A中打开B窗口可以这样:
Dim B As New FormB(Me)
B.Show()
计算机光要加减乘除的那种吗?
先在窗口添加一个textbox文本框名字是textbox1,再添加一个标签,属性text:(为一个空格)名字是label1,再加一个textbox文本框,名字是textbox2,加标签,名字是label2,属性text:“=”(引号不算),在后面加一个文本框,名字为textbox3.下一行添加五个按钮,名字分别是Button1(属性text:加),Button2(属性text:减).……最后一个是,清空,按钮
双击Button1,输入代码:dim a,b,c as single(回车!)a=textbox1.text(!)b=textbox2.text(!)a+b=c(!),textbox3=c(!)
后面分别点击不同的按钮,把“+”改成“-”,“*”“/”行了
双击最后按钮输入textbox1=""(!)textbox2=""(!)textbox3=""就ok了,累死我了呵呵(!)表示回车昂