![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 MStone Lin ![]()
![]() |
我有2個winform 起始為form2 form2 有一button 呼叫 form1 呼叫form1時 就直接列印form1的畫面 但卻是列印form2 請問怎麼排除問題 form2 內容 Form1的內容 請問如何從form2呼叫form1時直接列印form1的畫面 而不是列印form2的畫面 謝謝 |
1樓
作者回應
MStone Lin ![]() |
form2 的button1 少貼2行
完整如下 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label4.Text = Label4.Text + 1 Dim obj As Form1 = New Form1 obj.Label3.Text = Label4.Text obj.Visible = True ....... Me.Visible = False End Sub 救解,謝謝
本篇文章回覆於2018-05-02 11:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
如果把原本在 Form1.Load 事件中的程式 改移到 Form1.Shown 事件中執行 會不會好一些?
本篇文章回覆於2018-05-02 12:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
另, Form2 的 Button1_Click 之中應該會有 Form1.Show 吧? (若要抓 Form1 的圖列印) Form1.Show 應該是在 Me.Visible = False 之後對吧?
本篇文章回覆於2018-05-02 12:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
MStone Lin ![]() |
回Ader Chen
我在1樓有補上 完整的 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label4.Text = Label4.Text + 1 Dim obj As Form1 = New Form1 obj.Label3.Text = Label4.Text obj.Visible = True ....... Me.Visible = False End Sub 但若今天 要form2不消失 (取消Me.Visible = False) 顯示form1 然後直接印form1呢
本篇文章回覆於2018-05-02 13:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
Form2 做不做 Me.Visible = False, 應該無所謂. 可是 1樓和4樓的 Button1_Click 裡面沒看到 Form1.Show, 您應該是要列印 Form1 的畫面嗎? 那就需要將 Form1.Show 出來, memoryGraphics.CopyFromScreen 才能抓到 Form1 的畫面, 否則就變成抓到 Form2 的畫面了. 此其1. 在 Load 事件階段尚未顯示 Form, 要到 Shown 事件才能抓到 Form 的畫面, 此其2. 以上供參考.
本篇文章回覆於2018-05-02 14:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
MStone Lin ![]() |
回Ader Chen
照您說的 在button1_click 加上form1.show 然後在form1 加上 form1.show 將 form1.load 內容移至 form1.show 變成 先印 form2 後 才顯示 form1 的文字內容 怎麼改才正確 form2: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label4.Text = Label4.Text + 1 Form1.Show() Dim obj As Form1 = New Form1 obj.Label3.Text = Label4.Text ' obj.Visible = True End Sub form1: Private Sub Form1_show(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.CenterToScreen() '置中 Me.ControlBox = False '不顯示XX Label4.Text = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") printDocument1.PrinterSettings.PrinterName = "PDFCreator" ' 設定應用程式輸出印表機 CaptureScreen() printDocument1.Print() Me.Hide() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub 怎麼改才正確呢 謝謝
本篇文章回覆於2018-05-02 15:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
參考看看: Form2: Form1:
本篇文章回覆於2018-05-02 16:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
MStone Lin ![]() |
回 Ader Chen
還是不行 ttt,bmp 還是form2的畫面....
本篇文章回覆於2018-05-02 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
怪了, 我測試 OK 後才貼上 7樓程式碼的說... Button1_Click 中 Label4.Text = Val(Label4.Text) + 1 Dim obj As New Form1 obj.Label3.Text = Label4.Text obj.Show() '<--- 在 Show 之後應該沒有其他程式了吧(?)
本篇文章回覆於2018-05-02 16:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
最有價值解答
Ader Chen ![]() |
請試試看 CaptureScreen():
本篇文章回覆於2018-05-02 16:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓
作者回應
MStone Lin ![]() |
感謝 Ader Chen
終於成功了 感謝
本篇文章回覆於2018-05-02 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |