none
[VB2008]請問如何在GroupBox顯示指定的文字檔(.TXT) RRS feed

  • 問題

  • 我主要是想用OpenFileDialog瀏覽檔案
    在GroupBox中顯示整個→包含記事本程式←
    並可以在程式端這邊對其內容作修改或新增


    請問這該怎麼做呢?
    • 已編輯 maxcha 2009年10月19日 上午 09:05
    2009年10月19日 上午 07:10

解答

  • 你是說你要在畫面上放一個GroupBox, 然後GroupBox裡面有一個記事本的程式畫面 ?
    那這樣你就得自己寫一個記事本的介面與程式 (可能用richTextBox來當容器, 外加一堆Menu).

    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    • 已標示為解答 maxcha 2009年10月22日 上午 12:16
    2009年10月19日 上午 08:27
    版主
  • 那照Bill大說的用RichTextBox和OpenFileDialog讀入文字檔,修改後再存入原檔,不是簡單多了嗎...
    • 已標示為解答 maxcha 2009年10月22日 上午 12:17
    2009年10月19日 上午 09:02
  • 寫一支類似記事本的程式,比在程式中內嵌記事本容易多了。

    沒事不要想一些旁門左道想說省掉那些時間,結果旁門左道反而比正統的作法更難做且花數倍(或數十倍)的時間。
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    • 已標示為解答 maxcha 2009年10月22日 上午 12:17
    2009年10月19日 上午 09:05
    版主

所有回覆

  • 在 GroupBox 中放一個 Label,再用 StreamReader 配合 FileStream 去讀檔,再把內容丟給 Label.Text。
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    2009年10月19日 上午 07:12
    版主
  • Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            pstr = "C:\Documents and Settings\Administrator\桌面\162.txt"
            Dim objReader As New System.IO.StreamReader(pstr)
            Do
                estr = objReader.ReadToEnd
                If estr = "" Then
                    Exit Do
                End If
            Loop
            Label2.Text = estr
        End Sub
    請問我這樣寫怎沒有顯示記事本出來
    也沒有顯示任何東西
    2009年10月19日 上午 07:26
  •         Try
                ' Create an instance of StreamReader to read from a file.
                Dim sr As StreamReader = New StreamReader("d:\a.txt")
                Dim line As String
                ' Read and display the lines from the file until the end 
                ' of the file is reached.
                Do
                    line = sr.ReadLine()
                    Me.Label2.Text = Me.Label2.Text & line
                Loop Until line Is Nothing
                sr.Close()
            Catch ex As Exception
                ' Let the user know what went wrong.
                MsgBox("The file could not be read:")
                MsgBox(ex.Message)
            End Try

    StreamReader 類別

    讀檔好像不大對,參考以上試試囉...
    2009年10月19日 上午 07:48
  •         pstr = "C:\Documents and Settings\Administrator\桌面\162.txt"
            Dim objReader As New System.IO.StreamReader(pstr)
            estr = objReader.ReadToEnd
            Label2.Text = estr

    Windows 7 多點觸控設計大賽
    2009年10月19日 上午 07:48
    版主
  • GroupBox是用來將多個控制項群組起來的東西
    本身沒有辦法顯示內容

    所以您需要一個可以顯示文字內容的控制項(例如label,TextBox,...)來放要顯示的東西
    再把這個都西加到GroupBox裡面



    好奇問一下:
    >>顯示文字檔
    是指顯示文字檔的內容??檔名??還是其他??

    ^.^a
    topcat(姍舞之間的極度凝聚)http://www.dotblogs.com.tw/topcat/
    2009年10月19日 上午 07:56
  • 這樣顯示出來只有記事本裡的東西
    並沒有把記事本顯示出來
    請問如果我要顯示記事本檔案在GroupBox裡面
    2009年10月19日 上午 07:57
  • 我想顯示整個記事本
    2009年10月19日 上午 08:06
  • Hi,

    你...該不會是..想把記事本叫出後
    嵌到GroupBox中吧

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年10月19日 上午 08:22
  • 對阿
    有辦法做到這樣嗎?

    2009年10月19日 上午 08:24
  • 你是說你要在畫面上放一個GroupBox, 然後GroupBox裡面有一個記事本的程式畫面 ?
    那這樣你就得自己寫一個記事本的介面與程式 (可能用richTextBox來當容器, 外加一堆Menu).

    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    • 已標示為解答 maxcha 2009年10月22日 上午 12:16
    2009年10月19日 上午 08:27
    版主
  • 真是特別的需求啊!!
    小喵很好奇...這樣做的目的是什麼??
    ^.^a


    topcat(姍舞之間的極度凝聚)http://www.dotblogs.com.tw/topcat/
    2009年10月19日 上午 08:28
  • Hi,

    應該是可以做到類似效果
    使用Timer定時去監控記事本的位置與大小
    或是當Window Form大小與位置改變時去控制記事本

    可能要熟悉下列幾個API
    SetWindowPos
    FindWindow
    SendMessage

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年10月19日 上午 08:32
  • 這樣的話是不是把文字檔轉呈ACCESS
    在顯示到程式裡會比較快
    如果是用這種方法
    在程式端修改其內容或新增內容
    ACCESS是否也會跟著改變
    2009年10月19日 上午 08:49
  • 主要目的是方便
    不用跳換
    可以直接在一個視窗中作
    2009年10月19日 上午 08:50
  • 說真的, 截至目前為止, 我可以確定所有的人都應該已經完全被你弄糊塗了.
    重來一下好了. 你可否清楚的描述你到底想要做什麼?
    關於提問的技巧, 請先參考璉大的文章

    張貼文章應注意事項及應提供資訊

    建議你先看完這篇, 再重新思考與建構你要發問的內容
    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    2009年10月19日 上午 08:54
    版主
  • 這樣好像也是外部操作
    不能直接在程式視窗裡顯示並修改

    我主要是想用OpenFileDialog瀏覽檔案
    在GroupBox中顯示
    並可以在程式端這邊對其內容作修改或新增
    2009年10月19日 上午 08:55
  • 還是不明瞭您心裡的明白

    Access??您是指DataGrid嗎??

    不要跳換??
    您可以【詳細描述】您想要做什麼??
    因為您的描述小喵連想像都無從想像起....

    ^.^a


    topcat(姍舞之間的極度凝聚)http://www.dotblogs.com.tw/topcat/
    2009年10月19日 上午 08:55
  • 那照Bill大說的用RichTextBox和OpenFileDialog讀入文字檔,修改後再存入原檔,不是簡單多了嗎...
    • 已標示為解答 maxcha 2009年10月22日 上午 12:17
    2009年10月19日 上午 09:02
  • Hi,

    看了下來又覺得你要開的不是記事本吧
    應該是想要能透過自己的程式開檔
    透過自己的程式編輯、修改、與存檔
    但是又想要最簡單的方式
    可能因此才會想說用現成的記事本編輯功能
    是這樣嗎?
    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年10月19日 上午 09:04
  • 寫一支類似記事本的程式,比在程式中內嵌記事本容易多了。

    沒事不要想一些旁門左道想說省掉那些時間,結果旁門左道反而比正統的作法更難做且花數倍(或數十倍)的時間。
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    • 已標示為解答 maxcha 2009年10月22日 上午 12:17
    2009年10月19日 上午 09:05
    版主
  • 我檔案格式是記事本
    只是看了B大說的
    好像比較麻煩
    所以才想說透過轉檔的方式
    用DataGrid可以顯示資料庫的特行
    來顯示其內容
    2009年10月19日 上午 09:08
  • Hi,

    好像可以這樣做 :
       [DllImport("user32.dll", SetLastError = true)]
            private static extern uint SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    
            [DllImport("user32.dll", SetLastError = true)]
            private static extern uint SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
    
    
            private void button1_Click_1(object sender, EventArgs e)
            {
               
                System.Diagnostics.Process p = System.Diagnostics.Process.Start("notepad.exe");
    
                p.WaitForInputIdle();
    
    
                SetParent(p.MainWindowHandle, this.groupBox1.Handle);
    
                SendMessage(p.MainWindowHandle, 274, 61488, 0);
            }



    微軟技術支援中心 (CSS)
    2009年10月19日 上午 09:11