2010-06-30 17 views
9

में नोटबुक में पृष्ठों को दोबारा जोड़ना मैं एक टैबबंद फ़ाइल दृश्य खींचने के लिए नोटबुक विजेट का उपयोग कर रहा हूं, और मैंने मौजूदा नोटबुक से अलग-अलग पृष्ठों को अलग करने की अनुमति देने के लिए कोड जोड़ा है, जो एक अलग नोटबुक के साथ एक नई विंडो बनाता है , बस उस पृष्ठ को शामिल किया गया। हालांकि, मुझे कई नोटबुक के बीच पृष्ठों को स्थानांतरित करने की क्षमता भी चाहिए।जीटीके #

Notebook.WindowCreationHook प्रतिनिधि मुझे नोटबुक पेज से, पेज विजेट आता है देता है, और x और y निर्देशांक इसे गिरा दिया है, लेकिन मैं नहीं जानता कि मैं कैसे बता सकते हैं कि क्या नोटबुक यह, पर डाला जाता जा रहा है, यदि कोई हो। क्या इस पुनरावृत्ति के लिए एक अंतर्निर्मित तंत्र है, या क्या मुझे निर्देशांकों द्वारा जाना है? अगर मुझे निर्देशांक का उपयोग करना है, तो उन्हें लेने और नोटबुक विजेट वापस पाने का सबसे अच्छा तरीका क्या है? यदि आवश्यक हो, तो मैं चारों ओर तैरने वाली नोटबुक की एक सूची संग्रहीत कर सकता हूं, लेकिन फिर भी यह पता लगाने के लिए कि कौन सा है, यह थोड़ा कठिन होगा (ज़ेड-ऑर्डर लेना और उस मजेदार सामान को ध्यान में रखना)।

+0

'नोटबुक' टैग [2012 क्लीनअप] (http://meta.stackexchange.com/questions/128315/the-great-stack-overflow-tag-question-cleanup-of-2012) के हिस्से के रूप में हटा दिया गया है। –

उत्तर

2

मैंने अपनी सलाह पर जाने का फैसला किया (जिसे आपने -1 तक वोट दिया था, और मैंने हटा दिया क्योंकि यह वास्तव में प्रश्न का उत्तर नहीं देता है), इसलिए यहां मैं अपनी प्रतिष्ठा को फिर से जोखिम दे रहा हूं। कोड के साथ:

http://uplink.kicks-ass.net/~radu/GTK_Sharp_Notebook/

ऊपर दिए गए पते पर आप (मैं नहीं जानता कि आप किस पसंद करेंगे के बाद से) एक ही बात के दो अभिलेखागार मिल जाएगा। अभिलेखागार में आज मैंने लिखा कोड है, और यह यह करता है:

मुख्य विंडो में तीन टैब के साथ एक नोटबुक होता है, प्रत्येक टैब में यादृच्छिक UI तत्व (एक बटन, कैलेंडर और एक चेकबॉक्स) होता है। आप मुख्य विंडो के बाहर टैब खींच सकते हैं। जब आप उन्हें मुख्य विंडो के बाहर छोड़ देते हैं, तो एक नई विंडो बनाई जाती है, जिसमें स्वयं एक नोटबुक होता है। जो टैब आपने अभी छोड़ा है वह नई विंडो में दिखाई देगा। आप अब तक खुद को मिला है।

अब, यदि आप मुख्य विंडो से दूसरी विंडो को दूसरी विंडो में खींचते हैं, तो टैब को नई विंडो बनाने के बजाय नई विंडो की नोटबुक में जोड़ा जाता है।

इसके अलावा, यदि आप सभी विंडो को नई विंडो से दूर खींचते हैं, तो मुख्य विंडो पर वापस ले जाते हैं, नई विंडो नष्ट हो जाती है (अंतिम टैब को हटा दिया गया है)।

इस बात की कुंजी? सभी नोटबुक के लिए GroupId = 0। वे ड्रैग को संभालते हैं और खुद को छोड़ देते हैं।

यदि आप नई विंडो में टैब को छिपाना चाहते हैं (इससे पहले कि आप उन्हें दोबारा जोड़ दें), तो आप शायद नोटबुक की बजाय डॉकिंग विजेट देखना चाहते हैं।

नोट: मैंने लिंक किए गए एप्लिकेशन को बनाने के लिए लिनक्स के तहत मोनो डेवलपमेंट का उपयोग किया।

+0

आह हा! मुझे पता था कि यह उन पंक्तियों के साथ कुछ होना था। बहुत बहुत धन्यवाद। –

संबंधित मुद्दे