Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Tabs + Browser

Îåêßíçóå áðü ôï ìÝëïò NGF. Τελευταία δημοσίευση από το μέλος NGF στις 28-10-2006, 09:10. Υπάρχουν 12 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-09-2006, 10:24 17119

    Tabs + Browser

    Καλημερα στο forum. Γραφω ενα απλο web browser σε vs 2005 Και vb.net και ειπα να βαλω και tabs. Χρησιμοποιω το firefox active x. Το προβλημα μου ειναι οτι ενω ξερω μεσω απο κωδικα να προσθετω νεο tab στο tabcontrol με οτι τιτλο θελω εγω, δεν μπορω να το κανω να φορτωνεται αυτοματα μαζι με το tab ενας νεος browser μεσα στο tab και θα πρεπει να εχει διαφορετικο ονομα απο τους υπολοιπους οπως παραδειγμα αν ειναι ο browser (firefox active x) στο tab 1 να λεγεται Browser1. Αν ειναι στο tab 2 να λεγεται Browser2 κτλ

    Εχετε καμια λυση?

    Ευχαριστω

    Burning The Fire........
  •  25-09-2006, 09:11 17136 σε απάντηση της 17119

    Απ: Tabs + Browser

    Ο παρακάτω κώδικας προσθέτει ένα tabpage και μέσα σε αυτό ένα button. Φαντάζομαι ότι μπορείς να κάνεις τις αλλαγές για να βάζει τον browser που θέλεις...

    Dim TabPage As New TabPage
    Dim MyButton As New Button
    MyButton.Name =
    "MyButton" & TabControl1.TabPages.Count
    MyButton.Text = MyButton.Name
    MyButton.Parent = TabPage
    TabControl1.TabPages.Add(TabPage)


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  26-09-2006, 22:11 17253 σε απάντηση της 17119

    Απ: Tabs + Browser

    Η απαντηση ειναι μια χαρα αλλα ξαφνικα μου πεταει οτι ειναι readonly. Και τωρα υπαρχει τιποτα να κανω ?
    Burning The Fire........
  •  26-09-2006, 23:16 17268 σε απάντηση της 17253

    Απ: Tabs + Browser

    δεν αναφέρεις ολοκληρωμένα τι γίνεται!

    αλλά δοκίμασε αυτό. αντικατέστησε το mybutton.parent=tabpage με tabpage.controls.add(mybutton)
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  27-09-2006, 15:09 17337 σε απάντηση της 17119

    Απ: Tabs + Browser

    Public Function AddTabs(ByVal Number As Integer, ByVal TabsName As String)

    Dim X As Integer

    X = Nothing

    'M = New MOZILLACONTROLLib.MozillaBrowser

    For X = 1 To Number

    'frmMain.TabControl.TabPages.Add(frmMain.TabControl.TabCount + 1, TabsName)

    'frmMain.TabControl.Controls.Add(M)

    'M.Parent = frmMain.TabControl.SelectedTab

    Dim M As New MOZILLACONTROLLib.MozillaBrowser

    Dim TabPage As New TabPage

    'Dim MyButton As New Button

    'MyButton.Name = "MyButton" & TabControl1.TabPages.Count

    'MyButton.Text = MyButton.Name

    'MyButton.Parent = TabPage

    TabPage.Controls.Add(M)

    frmMain.TabControl.TabPages.Add(TabPage)

    Next X

    'frmMain.TabControl.(New MOZILLACONTROLLib.MozillaBrowser)



    Return 0

    End Function

    Αυτο ειναι το γραψε-σβησε του κωδικα. Το προβλημα που πεταει τωρα ειναι :

    Unable to cast COM object of type 'MOZILLACONTROLLib.MozillaBrowserClass' to class type 'System.Windows.Forms.Control'. Instances of types that represent COM components cannot be cast to types that do not represent COM components; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface.

    Αυτο το πεταει στη γραμμη : TabPage.Controls.Add(M)
    Burning The Fire........
  •  03-10-2006, 22:19 17864 σε απάντηση της 17119

    Απ: Tabs + Browser

    καμια λυση???
    Burning The Fire........
  •  04-10-2006, 10:09 17891 σε απάντηση της 17864

    Απ: Tabs + Browser

    Να ρωτήσω, το control του web browser του FireFox που χρησιμοποιείς σου έχει δουλέψει όταν το έχεις χρησιμοποιήσει κατευθείαν επάνω στην φόρμα, μόνο του; Δηλαδή χωρίς να προσπαθήσεις να το φορτώσεις δυναμικά όπως προσπαθείς;

    Επειδή από αναζήτηση που έκανα στο internet, βρήκα ότι παρόμοιο πρόβλημα υπάρχει για στην Visual Basic 6, δεν φορτώνεται το control δυναμικά, μήπως αυτό είναι ένα issue του control και όχι ότι εσύ δεν το κάνεις σωστά;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  04-10-2006, 10:34 17894 σε απάντηση της 17337

    Απ: Tabs + Browser

     NGF wrote:
    Αυτο ειναι το γραψε-σβησε του κωδικα. Το προβλημα που πεταει τωρα ειναι :

    Unable to cast COM object of type 'MOZILLACONTROLLib.MozillaBrowserClass' to class type 'System.Windows.Forms.Control'. Instances of types that represent COM components cannot be cast to types that do not represent COM components; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface.

    Αυτο το πεταει στη γραμμη : TabPage.Controls.Add(M)

    Το πρόβλημα είναι ότι το control του web browser είναι COM και όχι .NET (το ξέχασα στην αρχή), οπότε δεν μπορεί να προστεθεί ως έχει στην Controls collection, μια που δεν κληρονομεί το System.Windows.Forms.Control.
    Για να γίνει κάτι τέτοιο υπάρχει η AxHost class, η οποία λειτουργεί ως wrapper του COM control και η οποία κληρονομεί από το Control, οπότε μπορεί να χρησιμοποιηθεί αναλόγως. Σε αυτό το άρθρο περιγράφεται πως μπορείς να δημιουργήσεις δυναμικά instances ενός COM control: http://www.codeproject.com/dotnet/AxForms.asp. Στο τέλος του άρθρου τρέχει τον sample κώδικα που έχει γράψει ανοίγονταις ένα excel sheet χρησιμοποιώντας το "OWC.Spreadsheet.9" σαν classid. Εσύ θα πρέπει να βρεις το classid που αντιστοιχεί στον web browser του firefox.

    Για προχωρημένους: Η AxHost έχει protected constructor, για αυτό και στο παραπάνω παράδειγμα δημιουργεί μια άλλη κλάση που την κληρονομεί, έτσι ώστε να μπορεί να την αρχικοποιήσει.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  04-10-2006, 10:54 17898 σε απάντηση της 17894

    Απ: Tabs + Browser

    Ουπς! Ανακάλυψη. Βάζοντας το FlexGrid (παλιό COM control) στο toolbox του VS και ρίχοντάς το μετά σε μια φόρμα, είδα ότι στον Object Browser έχει δημιουργηθεί μια library με όνομα Interop.MSFlexGridLib και άλλη μια με AxInterop.MSFlexGridLib. Η δεύτερη περιέχει την κλάση AxMSFlexGrid η οποία κληρονομεί ήδη την AxHost, οπότε αν χρησιμοποιήσεις απευθείας αυτή (την αντίστοιχη του Firefox εννοώ) θα μπορεί να μπει στο control collection (άλλωστε αυτό κάνει και ο autogenerated κώδικας).
    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  17-10-2006, 17:36 18716 σε απάντηση της 17119

    Απ: Tabs + Browser

    Γυρισα! Λοιπον παω να κοιταξω αμεσως οτι μου ειπες!

    @gcapnias

    Οταν το χρησιμοποιω κατευθειαν δουλευει μια χαρα
    Burning The Fire........
  •  20-10-2006, 08:41 18868 σε απάντηση της 17119

    Απ: Tabs + Browser

    Δεν καταλαβα τιποτα. Ειδικα επειδη το παραδειγμα ειναι σε C#....
    Burning The Fire........
  •  22-10-2006, 15:33 18988 σε απάντηση της 17898

    Απ: Tabs + Browser

    Το παρακάτω το δοκίμασες; Αφού βάλεις reference στο dll του firefox, λογικά πρέπει να φαίνεται στον object browser ένα αντικείμενο Interop.xxxxx.xxxx και ένα AxInterop.xxxx (όπου xxxxxx ένα string που προσδιορίζει τον firefox). Δοκίμασε να χρησιμοποιήσεις το αντικείμενο που ξεκινάει με AxInterop στον αρχικό σου κώδικα. Δηλαδή:

    Dim browser as new axinterop.xxxxx

    tabpage.controls.add(browser)

    Λογικά δεν θα πάρει το invalid cast exception.

     papadi wrote:
    Ουπς! Ανακάλυψη. Βάζοντας το FlexGrid (παλιό COM control) στο toolbox του VS και ρίχοντάς το μετά σε μια φόρμα, είδα ότι στον Object Browser έχει δημιουργηθεί μια library με όνομα Interop.MSFlexGridLib και άλλη μια με AxInterop.MSFlexGridLib. Η δεύτερη περιέχει την κλάση AxMSFlexGrid η οποία κληρονομεί ήδη την AxHost, οπότε αν χρησιμοποιήσεις απευθείας αυτή (την αντίστοιχη του Firefox εννοώ) θα μπορεί να μπει στο control collection (άλλωστε αυτό κάνει και ο autogenerated κώδικας).


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  28-10-2006, 09:10 19377 σε απάντηση της 17119

    Απ: Tabs + Browser

    τιποτα. Στον object browser το βλεπει σαν AxMOZILLACONTROLLib

    Δεν υπαρχει τιποτα σαν Interop.xxxxx.xxxx η AxInterop.xxxx
    Burning The Fire........
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems