none
不支援晚期繫結要如何解決 RRS feed

  • 問題

  • 在form下共有textbox控制項八個,name分別為start_sta,start_n,start_e,start_az,start_r,end_sta,linename_textbox,ans_box
    在下拉式功能表新增"剪下",name為Menu_cut
    程式碼如下:


    '剪下(選取的部分剪下)
        Private Sub Menu_cut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Menu_cut.Click
            Dim focus_object As System.Object
            focus_object = ans_box
            If start_sta.Focused = True Then focus_object = start_sta Else If start_n.Focused = True Then focus_object = start_n Else If start_n.Focused = True Then focus_object = start_n Else If start_az.Focused = True Then focus_object = start_az Else If start_r.Focused = True Then focus_object = start_r Else If end_sta.Focused = True Then focus_object = end_sta Else If linename_textbox.Focused = True Then focus_object = linename_textbox Else If ans_box.Focused = True Then focus_object = ans_box
            If focus_object.SelectedText <> "" Then
                Clipboard.SetDataObject(focus_object.SelectedText)
                focus_object.SelectedText = ""
            Else
                MsgBox("沒有選取任何文字,無法剪下.", MsgBoxStyle.OkOnly, "訊息")
            End If
        End Sub

    結果:錯誤 1 .NET Compact Framework 的目標版本不支援晚期繫結。
    請問這段程式要如何修改呢??

    2010年3月31日 上午 07:53

解答

  • 看起來是要先把 focus_object 先轉型為正確型別 (TextBox) 才能使用SelectedText屬性

    ex:

        Dim myTextBox as Textbox

       myTextBox=DirectCast(focus_object, TextBox)

       If myTextBox.SelectedText <> "" Then
                Clipboard.SetDataObject(myTextBox.SelectedText)
               myTextBox .SelectedText = ""
            Else
                MsgBox("沒有選取任何文字,無法剪下.", MsgBoxStyle.OkOnly, "訊息")
      End If

     

    這樣試試看


    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    2010年3月31日 上午 08:24

所有回覆

  • 看起來是要先把 focus_object 先轉型為正確型別 (TextBox) 才能使用SelectedText屬性

    ex:

        Dim myTextBox as Textbox

       myTextBox=DirectCast(focus_object, TextBox)

       If myTextBox.SelectedText <> "" Then
                Clipboard.SetDataObject(myTextBox.SelectedText)
               myTextBox .SelectedText = ""
            Else
                MsgBox("沒有選取任何文字,無法剪下.", MsgBoxStyle.OkOnly, "訊息")
      End If

     

    這樣試試看


    MSDN 文件庫很重要
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    進步的人會找尋自己程式中的缺點,半桶水則把自己程式的錯誤推到不相干事物的身上
    2010年3月31日 上午 08:24
  • 感謝Bill Chung的幫忙,在這裡謝謝啦

    修改過的程式碼如下,正確執行無誤

     '剪下(選取的部分剪下)
        Private Sub Menu_cut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Menu_cut.Click
            Dim focus_object As TextBox
            Dim myTextBox As TextBox
            focus_object = ans_box '這是內定的設定
            myTextBox = DirectCast(focus_object, TextBox)
            If start_sta.Focused = True Then myTextBox = start_sta Else If start_n.Focused = True Then myTextBox = start_n Else If start_n.Focused = True Then myTextBox = start_n Else If start_e.Focused = True Then myTextBox = start_e Else If start_az.Focused = True Then myTextBox = start_az Else If start_r.Focused = True Then myTextBox = start_r Else If end_sta.Focused = True Then myTextBox = end_sta Else If linename_textbox.Focused = True Then myTextBox = linename_textbox Else If ans_box.Focused = True Then myTextBox = ans_box
            If myTextBox.SelectedText <> "" Then
                Clipboard.SetDataObject(myTextBox.SelectedText)
                myTextBox.SelectedText = ""
            Else
                MsgBox("沒有選取任何文字,無法剪下.", MsgBoxStyle.OkOnly, "訊息")
            End If
        End Sub

    再次感謝Bill Chung的幫忙

    2010年3月31日 上午 09:02