十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
就是重绘printPreviewDialog1控件。控件容器中,包含ToolStrip控件。
成都创新互联是一家专注网站建设、网络营销策划、小程序定制开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10年以来,已经为超过千家雨棚定制各业的企业公司提供互联网服务。现在,服务的超过千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
目的:在ToolStrip控件集合中添加一个ToolStripButton控件按钮。
代码如下:
====================================================
Public Class Form1
'定义相关变量
Private ppdlog1 As New printPreviewDialog '预览控件
Private mytoolstrip1 As New ToolStrip
Private WithEvents myButton1 As New ToolStripButton '新按钮
'------------------创建新按钮的过程
Private Sub CreatemyButton()
Dim c1 As Control
For Each c1 In ppdlog1.Controls
If TypeName(c1) = "ToolStrip" Then
mytoolstrip1 = c1
End If
Next
myButton1.Text = "新按钮"
mytoolstrip1.Items.Add(myButton1)
End Sub
'-----------------------
'在Sub New()中调用如下:
'--------------------------------------------
Public Sub New()
' 此调用是设计器所必需的。
' 在 InitializeComponent() 调用之后添加任何初始化。
CreatemyButton() '创建“新按钮”的过程
End Sub
'----------------------------------------------------
'myButton1的Click过程
'===================
Private Sub myButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("新按钮创建成功!")
'//执行代码.......
End Sub
'===================
'测试一下:
'----------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ppdlog1.Document = PrintDocument1
ppdlog1.ShowDialog()
End Sub
'----------------
End Class
==================================================
效果如图:
你的 Me.StartPosition =FormStartPosition.CenterScreen 写在哪的?
写在Form_Load事件里是不起作用的(也不叫不起作用,只是那个时候窗体已经不算Start了),一般代码是这样写,在Form1中的某个地方
Dim frm As New Form2
frm.StartPosition =FormStartPosition.CenterScreen
frm.ShowDialog()
如果你一定要在Form2中通过代码设置,可以把Me.StartPosition =FormStartPosition.CenterScreen移到Form2的构造函数中。
这样写,每次点击按钮事件都会创建一个新的form。
你想要的效果是主窗口生命周期内,子form是一个。
根据这个你再考虑下怎么实现。比如主form加载时创建子form。点击事件中去获取子form的焦点。
将NewForm设置为全局变量就可以了,如果新建窗口比较多,就设置为数组,例如:
Public Class Form1
Dim NewForm(10) As Form
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
NewForm(0) = New Form
NewForm(0).Show()
End Sub
End Class
首先声明一下API
在你窗口最顶的位置上写上
Private Declare Function 取窗口句柄 Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'由于VB支持中文的 我就定义成 取窗口句柄 这个了
'在窗体中添加一个按钮里面放进下面代码就OK了
Private Sub Command1_Click()
Dim 窗口句柄 As Long '声明窗口句柄变量存储
窗口句柄 = 取窗口句柄(vbNullString, "新建 文本文档.txt - 记事本") '取窗口标题的句柄 把得到窗口标题句柄赋予给刚才 窗口句柄 这变量里
If 窗口句柄 = 0 Then '判断窗口句柄是否等于0 如果等于0表示无法找到窗口句柄
MsgBox "无法找到需要的窗口句柄"
Else
MsgBox "已找到窗口句柄 句柄数为:" 窗口句柄
End If
End Sub
Private Sub Command1_Click()
Dim sf As Object
Set sf = CreateObject("Shell.Application").BrowseForFolder(0, "选择文件夹", 0, "")
If Not sf Is Nothing Then
MsgBox "选择的文件夹是" vbCrLf sf.self.Path
End If
Set sf = Nothing
End Sub