Saya membuat kontrol pengguna dalam proyek saya, dan setelah membangun proyek, saya harus meletakkannya di kotak peralatan saya, dan menggunakannya sebagai kontrol umum. tapi saya tidak bisa. yang UserControl
ada di namespace proyek saya, dan saya mencoba Choose Item
di menu klik kanan, tapi saya tidak menemukan cara untuk menambahkannya.
94
UserControl
luar proyek saat ini.Klik kanan pada toolbar lalu klik "pilih item" di menu konteks. Dialog dengan komponen terdaftar akan muncul. dalam dialog ini klik "Browse" untuk memilih perakitan Anda dengan kontrol pengguna yang ingin Anda gunakan.
PS. Majelis ini harus didaftarkan sebelumnya.
sumber
Saya menemukan bahwa kontrol pengguna harus memiliki konstruktor tanpa parameter atau tidak akan muncul dalam daftar. setidaknya itu benar di vs2005.
sumber
Menggunakan VS 2010:
Katakanlah Anda memiliki proyek Windows.Forms. Anda menambahkan UserControl (katakanlah MyControl) ke proyek, dan merancang semuanya. Sekarang Anda ingin menambahkannya ke kotak peralatan Anda.
Segera setelah proyek berhasil dibangun satu kali, itu akan muncul di Komponen Kerangka Anda. Klik kanan Toolbox untuk mendapatkan menu konteks, pilih "Pilih Item ...", dan telusuri nama kontrol Anda (MyControl) di bawah tab ".NET Framework Components".
Keuntungan menggunakan dll: Anda dapat mengedit kontrol dalam proyek yang sama dengan formulir Anda, dan formulir akan dibangun dengan kontrol baru. Namun, kontrol hanya akan tersedia untuk proyek ini.
Catatan: Jika kontrol memiliki kesalahan build, selesaikan sebelum melanjutkan ke formulir yang berisi, atau desainer mengalami serangan jantung.
sumber
Saya memiliki banyak kontrol pengguna tetapi satu kontrol menolak untuk ditampilkan di Toolbox , meskipun saya membangun kembali solusi dan itu dicentang di dialog Pilih Item ....
Larutan:
Catatan ini juga mengharuskan Anda mengaktifkan opsi AutoToolboxPopulate . Seperti yang disarankan oleh jawaban @DaveF.
Solusi Alternatif: Saya tidak yakin apakah ini berhasil, dan saya tidak dapat mencobanya karena saya sudah menyelesaikan masalah saya, tetapi jika Anda tidak mencentang kontrol pengguna dari dialog Pilih Item ... , tekan OK, lalu buka kembali dan memeriksa kontrol pengguna. Itu mungkin juga berhasil.
sumber
Ada beberapa cara.
Dalam Proyek asli Anda, pilih File | Ekspor template
Kemudian pilih ItemTemplate dan ikuti wizard.
Pindahkan UserControl Anda ke ClassLibrary terpisah (dan perbaiki namespace dll).
Tambahkan referensi ke perpustakaan kelas dari Proyek yang membutuhkannya. Jangan repot-repot dengan GAC atau apapun, hanya file DLL.
Saya tidak akan menyarankan untuk meletakkan UserControl di ToolBox normal, tetapi itu bisa dilakukan. Lihat jawaban dari @Arseny
sumber
Dalam kasus saya, saya tidak dapat melihat kontrol apa pun dalam proyek tersebut. Hanya ketika mengklik kanan pada toolBox dan memilih "Show All" saya melihatnya, tetapi mereka dinonaktifkan ...
Mengubah jenis Proyek dari aplikasi Windows ke ClassLibrary membuat perbaikan.
sumber
Pertanyaan dasar jika Anda menggunakan obat generik di kontrol basis Anda. Jika ya:
katakanlah kita memiliki kendali:
public class MyComboDropDown : ComboDropDownComon<MyType> { public MyComboDropDown() { } }
MyComboDropDown tidak akan mengizinkan untuk membuka desainer di atasnya dan tidak akan ditampilkan di Toolbox. Mengapa? Karena kontrol dasar belum dikompilasi - ketika MyComboDropDown terpenuhi. Anda dapat mengubah ini:
public class MyComboDropDown : MyComboDropDownBase { public MyComboDropDown() { } } public class MyComboDropDownBase : ComboDropDownComon<MyType> { }
Dari pada setelah membangun kembali, dan mengatur ulang kotak alat itu harus dapat melihat MyComboDropDown di desainer dan juga di Toolbox
sumber
Masalah dengan desainer saya adalah masalah 32 vs 64 bit. Saya dapat menambahkan kontrol ke kotak alat setelah mengikuti petunjuk di Tidak dapat menambahkan Kontrol dari 64-bit Assemblies ke Toolbox atau Gunakan di Desainer dalam artikel Visual Studio IDE MS KB.
sumber
Kompilasi ulang berhasil bagi saya!
sumber