就是重繪printPreviewDialog1控件??丶萜髦?,包含ToolStrip控件。
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大化網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式大化網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大化地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴(lài)。
目的:在ToolStrip控件集合中添加一個(gè)ToolStripButton控件按鈕。
代碼如下:
====================================================
Public Class Form1
'定義相關(guān)變量
Private ppdlog1 As New?printPreviewDialog ?'預(yù)覽控件
Private mytoolstrip1 As New ToolStrip
Private WithEvents myButton1 As New ToolStripButton '新按鈕
'------------------創(chuàng)建新按鈕的過(guò)程
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()中調(diào)用如下:
'--------------------------------------------
Public Sub New()
' 此調(diào)用是設(shè)計(jì)器所必需的。
' 在 InitializeComponent() 調(diào)用之后添加任何初始化。
CreatemyButton() ?'創(chuàng)建“新按鈕”的過(guò)程
End Sub
'----------------------------------------------------
'myButton1的Click過(guò)程
'===================
Private Sub myButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("新按鈕創(chuàng)建成功!")
'//執(zhí)行代碼.......
End Sub
'===================
'測(cè)試一下:
'----------------
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
==================================================
效果如圖:
先得到目標(biāo)窗體的 handle (句柄) 或整個(gè)對(duì)象, 然后實(shí)例化一個(gè)button 并加入到窗體對(duì)象中. 如: 在 form2 點(diǎn)擊 add 按鈕后, form1 會(huì)新添加一個(gè)按鈕,單擊顯示hello , 下面是兩個(gè)窗口類(lèi). public class form1 inherits system.windows.forms.form '這是一個(gè)什么都沒(méi)有的空窗體 public sub new() me.size=new size(200,200) end subend class public class form2 inherits system.windows.forms.form private button1 as button '添加按鈕 private frm as form public sub new() me.size=new size(200,200) button1= new button() '實(shí)例化 button1.text="add" '名字就叫 add button1.location=new point(50,50) addhandle button1.click, addressof add_click me.controls.add(button1) end sub '用于記錄form1對(duì)象的屬性 public property form1() as form get return frm end get set (byval value as form) frm = value end set end property '添加按鈕 private sub add_click(byval o as object, byval e as eventargs) '當(dāng)form1屬性被指定,向form1 添加按鈕 if frm isnot nothing then dim btn as button = new button() btn.text ="new button" btn.location=new point(50,50) addhandle btn.click, addressof button_click frm.controls.add (btn) else msgbox ("未指定form1") end if end sub '新按鈕的單擊事件 private sub button_click(byval o as object, byval e as eventargs) msgbox("hello!") end subend class 兩個(gè)窗體類(lèi)完成了,然后在模塊寫(xiě)如下代碼,程序設(shè)置為從模塊啟動(dòng):public module module1 public sub main() dim frm1= new form1() dim frm2 = new form2() frm2.form1=frm1 frm2.show() frm1.show() application.run(frm2) end subend module
Public Sub GenerateDynamiceButton()
'建立 坐標(biāo)位置的變數(shù), 方便一會(huì)兒安排 自動(dòng)生產(chǎn)的button 的位置
Dim y As Integer = 15
Dim x As Integer = 0
' 用for loop 來(lái)建立 這些button 做 18只button
For ButtonIndex As Integer = 0 To 17
' 建造新的 button
Dim MyButton As New Button
'設(shè)定這新的button 的闊度
MyButton.Width = 80
'設(shè)定這新的button 的高度
MyButton.Height = 20
'我們暫定每行有4個(gè)BUTTON, 當(dāng)每行有多個(gè)4個(gè)BUTTON 時(shí)重設(shè)行距, 令到下一行的和這一行的距離有10 個(gè)PIXEL
' 和重設(shè)x 坐標(biāo)` = 0, 令到位置由頭開(kāi)始
If ButtonIndex Mod 4 = 0 Then
'設(shè)定 TOP 的 坐標(biāo)位置令他可以和上一排的有10個(gè)PIXEL 的距離
y += MyButton.Height + 10
x = 0
End If
'設(shè)定文字 和 位置
' Set the text and set its top and left based on its dimensions and count
MyButton.Text = "My Button" ButtonIndex
'設(shè)定 TOP 的 坐標(biāo)位置
MyButton.Top = y
'下面的CODE 可以令到這個(gè)BUTTON 和另一個(gè)BUTTON 有5個(gè)PIXEL 的距離
MyButton.Left = 26 + (x * (MyButton.Width + 5))
x += 1
'設(shè)定 BUTTON CLICK EVENT
AddHandler MyButton.Click, AddressOf MyButton_Click
'把button 加到 form 中
Me.Controls.Add(MyButton)
Next
End Sub
'處理 button click event
Private Sub MyButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim btn As Button = sender
'pop up 一個(gè)自己button 的字的message
MsgBox(btn.Text)
制作一個(gè)按鈕:
Dim my_Button As New Button
my_Button.SetBounds(Me.Width - 75, 0, 75, 23)
Me.Controls.Add(my_Button)
在軟件運(yùn)行前是看不到這個(gè)按鈕,運(yùn)行后可見(jiàn),運(yùn)行后想更改按鈕位置,簡(jiǎn)單的方法啟動(dòng)一個(gè)事件,如textbox輸入數(shù)值后通過(guò)Button的點(diǎn)擊事件修改my_Button的頂點(diǎn)位置,還有的方法就是拖動(dòng),拖動(dòng)應(yīng)該是高級(jí)編程部分而且?guī)资写a,沒(méi)有人愿意寫(xiě)
ToolStripMenuItem.ShortcutKeys 屬性
獲取或設(shè)置與 ToolStripMenuItem 關(guān)聯(lián)的快捷鍵。
使用 ShortcutKeys 屬性可以將組合鍵分配給菜單命令,例如,將 Ctrl+C 分配給“復(fù)制”命令。 您可以使用快捷鍵而不使用訪問(wèn)鍵,也可以同時(shí)使用快捷鍵和訪問(wèn)鍵,訪問(wèn)鍵是菜單或菜單項(xiàng)中與 Alt 鍵一起使用的帶下劃線的字母。 通過(guò)在要用于訪問(wèn)鍵的字母前面鍵入一個(gè)“and”符 (),可以在代碼中定義訪問(wèn)鍵。
是有錯(cuò)誤嘛,因?yàn)楸砻鹒amily后應(yīng)該有一個(gè)空格才能接(num,name,pwd,qx,bz)