Re: [VB2008] 並未將物件參考設定為物件的執行個體?

看板Visual_Basic作者 (紙片人 )時間16年前 (2009/09/04 15:54), 編輯推噓4(4010)
留言14則, 2人參與, 最新討論串2/3 (看更多)
會出現 Exception的程式碼似乎在這一段 上篇推文中 P大建議我將 Dim a as xxx = new xx() 但是我修改完會出現錯誤 例如以下紅色字 Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick Dim port As Integer = 5000 Try ' 複雜影像至剪貼簿(Clipboard) SendMessage(hwnd, WM_CAP_EDIT_COPY, 0, 0) ' 自剪貼簿(Clipboard)取得物件 Dim data As IDataObject = Clipboard.GetDataObject() 將上行改成 Dim data As IDataObject = New Clipboard.GetDataObject() 則會出現 型別'Clipboard.GetDataObject'未定義 ' 建立記憶體的資料流 Dim memStream As New System.IO.MemoryStream() If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then Dim image As Image = CType((data.GetData(GetType(System.Drawing.Bitmap))), Image) ' 將影像依指定格式儲存至指定的資料流 image.Save(memStream, ImageFormat.Jpeg) End If ' 將影像依指定格式儲存至指定的資料流 picLocal.Image.Save(memStream, ImageFormat.Jpeg) ' 回傳記憶體資料流之位元組陣列 Dim buffer As Byte() = memStream.GetBuffer ' 建立用戶端TcpClient Dim tcpClient As New TcpClient(txtHost.Text, port) ' 取得用戶端的輸出入串流 clientStream = tcpClient.GetStream() ' 建立BinaryWriter Dim binarywriter As New BinaryWriter(clientStream) binarywriter.Write(buffer) binarywriter.Flush() binarywriter.Close() memStream.Flush() memStream.Close() clientStream.Flush() clientStream.Close() tcpClient.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub 請問該如何修改呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.205.249

09/04 16:34, , 1F
那是因為你這樣變成重複宣告啊XD
09/04 16:34, 1F

09/04 16:34, , 2F
看錯了,嘖
09/04 16:34, 2F

09/04 16:35, , 3F
那個東西是來自其他物件的話,就不需要做那改變
09/04 16:35, 3F

09/04 16:36, , 4F
但相對的,就要確定另外那個來源物件是否存在
09/04 16:36, 4F

09/04 16:37, , 5F
Clipboard.GetDataObject()看起來,後者是前者的方法
09/04 16:37, 5F

09/04 16:38, , 6F
也就是要先確定,前者物件是否存在
09/04 16:38, 6F

09/04 16:38, , 7F
我沒用過這個,不知道這東西是怎麼來的
09/04 16:38, 7F

09/04 16:50, , 8F
妳的錯誤出在哪?光是剪貼簿那部分我自己試可以用
09/04 16:50, 8F

09/04 16:50, , 9F
沒有被正確宣告的到底是誰?錯誤訊息應該有說
09/04 16:50, 9F

09/04 21:09, , 10F
New 要接的是類別名稱,不是方法
09/04 21:09, 10F

09/04 21:11, , 11F
而且 Clipboard.GetDataObject()不需要建立物件實體
09/04 21:11, 11F

09/04 21:12, , 12F
Dim text As String = Clipboard.GetText()
09/04 21:12, 12F

09/04 21:12, , 13F
就可以取得剪貼簿中的文字了
09/04 21:12, 13F

09/04 21:13, , 14F
Clipboard.GetDataObject() 取得一個物件
09/04 21:13, 14F
文章代碼(AID): #1AeCURT0 (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #1AeCURT0 (Visual_Basic)