Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mendayakan Saiz Semula Lajur Masa Reka Bentuk dalam Kawalan Borang Windows Tersuai?

Bagaimanakah Saya Boleh Mendayakan Saiz Semula Lajur Masa Reka Bentuk dalam Kawalan Borang Windows Tersuai?

Susan Sarandon
Lepaskan: 2025-01-05 18:21:41
asal
124 orang telah melayarinya

How Can I Enable Design-Time Column Resizing in Custom Windows Forms Controls?

Mendayakan Sokongan Reka Bentuk dalam Kawalan Tersuai

Apabila membuat kawalan tersuai, adalah wajar untuk mengekalkan kefungsian yang sama seperti kawalan asasnya. Satu fungsi sedemikian ialah keupayaan untuk mengubah saiz lajur dengan menyeret pengepala pada masa reka bentuk. Walau bagaimanapun, secara lalai, kawalan tersuai tidak mewarisi gelagat ini.

pereka bentuk Windows Forms menggunakan kelas pereka khusus untuk kawalan khusus. Pereka bentuk untuk ListView, sebagai contoh, ialah kelas System.Windows.Forms.Design.ListViewDesigner dalaman. Apabila meletakkan ListView pada kawalan pengguna, ControlDesigner lalai digunakan sebaliknya, yang tidak menyediakan keupayaan untuk menyeret pengepala lajur.

Untuk membetulkannya, anda boleh mencipta pereka bentuk tersuai untuk kawalan pengguna. Dengan mendedahkan ListView yang mendasari melalui harta awam dan menggunakan atribut [DesignerSerializationVisibility], anda boleh mengakses dan mengubah suai sifat ListView pada masa reka bentuk. Selain itu, dengan menggunakan atribut [Designer] pada kelas kawalan pengguna, anda boleh menggantikan pereka bentuk lalai dengan tersuai anda.

Pertimbangkan contoh berikut:

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");
        }
    }
}
Salin selepas log masuk

Dengan pereka bentuk tersuai ini , ListView dalam kawalan pengguna boleh diklik dan direka bentuk seperti ListView kendiri.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan