Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendayakan Sokongan Masa Reka Bentuk untuk Kawalan yang Dibenamkan dalam Kawalan Borang Windows Tersuai?

Bagaimanakah Saya Boleh Mendayakan Sokongan Masa Reka Bentuk untuk Kawalan yang Dibenamkan dalam Kawalan Borang Windows Tersuai?

Barbara Streisand
Barbara Streisandasal
2025-01-05 14:48:41342semak imbas

How Can I Enable Design-Time Support for Controls Embedded within Custom Windows Forms Controls?

Mendayakan Sokongan Reka Bentuk dalam Kawalan Tersuai

Dalam bidang pembangunan Windows Forms, kawalan tersuai selalunya tidak mempunyai keupayaan reka bentuk yang sama seperti rakan sejawatnya yang telah ditetapkan. apabila tertanam di dalamnya. Ini boleh menjadi sangat mengecewakan apabila ciri seperti saiz semula lajur dalam paparan senarai tersuai tidak boleh diakses dalam mod reka bentuk. Walau bagaimanapun, dengan penciptaan pereka bentuk tersuai, had ini boleh diatasi.

pereka bentuk lalai untuk UserControls, ControlDesigner, tidak mempunyai fungsi yang diperlukan untuk berinteraksi dengan kawalan yang terkandung. Untuk membetulkan perkara ini, kami boleh mencipta pereka bentuk tersuai yang mewarisi daripada ControlDesigner dan secara khusus mendayakan sokongan reka bentuk untuk kawalan yang diingini dalam kawalan tersuai.

Untuk mencapainya, ikut langkah berikut:

  1. Tambahkan harta awam pada kawalan tersuai yang mendedahkan kawalan asas, dalam kes ini, ListView.
  2. Gunakan Atribut DesignerSerializationVisibility kepada harta awam untuk membolehkan sifat kawalan disimpan semasa perubahan reka bentuk.
  3. Gunakan atribut Designer pada kelas kawalan tersuai untuk mengatasi pereka bentuk lalai dengan pereka tersuai.

Kod di bawah menggambarkan pendekatan ini:

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;   // Note: add reference required: System.Design.dll

namespace WindowsFormsApplication1 {
    [Designer(typeof(MyDesigner))]   // Note: custom designer
    public partial class UserControl1 : UserControl {
        public UserControl1() {
            InitializeComponent();
        }

        // Note: property added
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public ListView Employees { get { return listView1; } }
    }

    // Note: custom designer class added
    class MyDesigner : ControlDesigner {
        public override void Initialize(IComponent comp) {
            base.Initialize(comp);
            var uc = (UserControl1)comp;
            EnableDesignMode(uc.Employees, "Employees");
        }
    }
}

Dengan mencipta pereka tersuai, kami boleh memanjangkan reka bentuk keupayaan kawalan tersuai, mendayakan ciri seperti saiz semula lajur dalam kawalan ListView apabila dibenamkan dalam UserControls.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendayakan Sokongan Masa Reka Bentuk untuk Kawalan yang Dibenamkan dalam Kawalan Borang Windows Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn