[c#] उपयोगकर्ता नियंत्रण को एक नई विंडो में पॉपआउट करें


0 Answers

आपके पॉपऑट () को बदलना होगा। 'इस' के एक क्लोन बनाएँ क्लोन ऑब्जेक्ट को नए फॉर्म में जोड़ें। अपने पॉपऑप्टकंट्रोल कक्षा में आईसीलाइनेबल इंटरफ़ेस को लागू करें। आपके क्लोन () विधि को लागू करना है जैसे कि आपके पास 'पॉपऑट कंट्रोल' ऑब्जेक्ट की समान स्थिति है, यानी 'यह'।

public void Popout()
    {
        XtraForm PopoutForm = new XtraForm();
        PopoutForm.Controls.Add(this.Clone());
        Dock = DockStyle.Fill;
        PopoutForm.Show();
    }
Question

मैं इसे बनाना चाहता हूं ताकि मेरे कुछ उपयोगकर्ता नियंत्रणों में एक नई विंडो में 'पॉप आउट' की क्षमता हो। मैं यह कैसे देख रहा हूं कि उपयोगकर्ता नियंत्रण उस समय रहेगा जहां यह वर्तमान में होगा, लेकिन इसकी वर्तमान स्थिति की एक प्रति एक नई विंडो में भेज दी जाएगी। मैं यह भी चाहता हूं कि यह कार्यक्षमता एक बेस क्लास में हो, ताकि व्युत्पन्न कक्षाओं में यह कार्यशीलता हो।

यह है, जो कि अभी तक मेरे पास है:

public class PopoutControl : XtraUserControl
{
    public void Popout()
    {
        XtraForm PopoutForm = new XtraForm();
        PopoutForm.Controls.Add(this);
        Dock = DockStyle.Fill;
        PopoutForm.Show();
    }
}


public partial class PopoutControlTest : PopoutControl
{
    public PopoutControlTest()
    {
        InitializeComponent();
    }

    private void OnPopoutRequest(object sender, EventArgs e)
    {
        Popout();
    }
}

यह काम करता है सिवाय इसके कि यह उपयोगकर्ता के नियंत्रण को उस मूल प्रपत्र से हटा देता है जहां यह स्थित है - इसे नए रूप में रखने के लिए - मैं इसे कैसे हल कर सकता हूं?

  • विलियम



Related