cara membuat tombol sakelar di vb.net

pemrograman


halo, saya perlu membuat tombol yang digunakan untuk menyembunyikan objek label atau memunculkannya kembali.
jadi saya perlu tombolnya ketika ditekan untuk tenggelam seperti saklar dan menghilangkan label dan ketika ditekan lagi, menjadi terangkat dan muncul label.

ada yang tahu cara membuat tombol sakelar?

Solusi 2

Anda dapat menggunakan kotak centang untuk tujuan tersebut.
Anda juga dapat menggunakan tombol biasa (tekan), di event handler klik, cukup alihkan Visible properti label:

VB
myLabel.Visible = Not myLabel.Visible

Solusi 3

Tombol sakelar tidak lebih dari sebuah Tombol sederhana yang
meminta nilai (misalnya apakah boolean ini benar)
dan setelah itu if(boolean == true) lakukan ini, lakukan itu

C#
boolean boo = false;

buttonPressed()
{
  if(boo == true)
  {
    boo = false;
    doSomething.Visible = true;
  }
  else
  {
    boo = true;
    doSomething.Visible = false;
  }
}

Solusi 4

cukup gunakan kode ini

VB
checkBox.Appearance = System.Windows.Forms.Appearance.Button

Solusi 5

Saya mendapatkan ini dari suatu tempat dan berfungsi dengan baik!!!
1. Klik kanan proyek di VS dan pilih ‘Tambah’ lalu ‘Kontrol Pengguna…’
2. Beri nama file baru Anda “Toggle.vb”
3. Paste kode di bawah ini (harap PERHATIKAN langkah 4):

VB.NET
Sistem Impor.Gambar
Sistem Impor.Gambar
Impor Sistem.Gambar.Gambar2D
Mengimpor Sistem.Windows.Formulir

Beralih Kelas Publik
Mewarisi System.Windows.Forms.UserControl

Pribadi _dicentang Sebagai Boolean
Properti Umum Diperiksa Sebagai Boolean
Mendapatkan
Kembalikan _diperiksa
Akhir Dapatkan
Set (nilai ByVal Sebagai Boolean)
Jika Tidak _dicentang.Sama(nilai) Lalu
_diperiksa = nilai
Saya.OnCheckedChanged()
Berakhir jika
Kumpulan Akhir
Properti Akhir

Sub OnCheckedChanged() yang Dapat Ditimpa Dilindungi
RaiseEvent CheckedChanged(Saya, EventArgs.Empty)
Akhiri Sub

Acara Publik Diperiksa Berubah (Pengirim ByVal Sebagai Objek, ByVal dan Sebagai EventArgs)

Sub OnMouseClick Penggantian Terlindungi (e Sebagai MouseEventArgs)
Saya.Diperiksa = Bukan Saya.Diperiksa
Saya.Batalkan()
Basis Saya.OnMouseClick(e)
Akhiri Sub

Sub OnPaint Penggantian Terlindungi (ByVal dan As PaintEventArgs)
Saya.OnPaintBackground(e)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias

Menggunakan jalur = GraphicsPath Baru()
Redupkan d = Padding.Semua
Redupkan r = Saya.Tinggi – 2 * d
jalur.AddArc(d, d, r, r, 90, 180)
path.AddArc(Me.Lebar – r – d, d, r, r, -90, 180)
jalur.CloseFigur()
e.Graphics.FillPath(Jika(Dicentang, Brushes.DarkGray, Brushes.LightGray), path)
r = Tinggi – 1
Redupkan persegi = If(Dicentang, Sistem.Gambar.Rectangle Baru(Lebar – r – 1, 0, r, r), Sistem.Gambar.Rectangle(0, 0, r, r) Baru
e.Graphics.FillEllipse(Jika(Dicentang, Brushes.Green, Brushes.LightSlateGray), rect)
Akhiri Penggunaan
Akhiri Sub
Kelas Akhir

4. Beralih ke formulir Anda dan seret kontrol ‘alih’ Anda dari ToolBox ke formulir (dalam beberapa kasus, tombol beralih tidak langsung muncul di ToolBox. Dalam kasus berikut:
Pergi ke Alat > Opsi > Windows Forms Designer > Umum
Di bagian bawah daftar Anda akan menemukan Toolbox > AutoToolboxPopulate yang pada instalasi baru defaultnya adalah False. Tetapkan kebenarannya dan kemudian bangun kembali solusi Anda. Kontrol pengguna dalam solusi Anda harus secara otomatis ditambahkan ke kotak peralatan. Anda mungkin harus memuat ulang solusinya juga.

Jika Kontrol Pengguna Anda ada di perpustakaan, Anda dapat menambahkan ini ke Toolbox Anda menggunakan
Toolbox -> klik kanan -> Pilih Item -> Telusuri
Pilih perakitan Anda dengan Kontrol Pengguna.
5. Ukuran & pengaturan dapat diubah seperti kontrol standar
6. Warna dapat diubah dalam metode OnPaint di Toggle Class
Kode C#:
menggunakan Sistem.Gambar;
menggunakan System.Drawing.Drawing2D;
menggunakan System.Windows.Forms;

namespace Nama_Proyek_Anda
{
kelas Beralih: Kotak Centang
{
Beralih publik()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, benar);
Bantalan = Bantalan baru(6);
}
penggantian terproteksi void OnPaint(PaintEventArgs e)
{
ini.OnPaintBackground(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
menggunakan (var path = GraphicsPath baru())
{
var d = Padding.Semua;
var r = ini.Tinggi – 2 * d;
jalur.AddArc(d, d, r, r, 90, 180);
path.AddArc(ini.Lebar – r – d, d, r, r, -90, 180);
jalur.CloseFigur();
e.Graphics.FillPath(Dicentang ? Brushes.DarkGray : Brushes.LightGray, path);
r = Tinggi – 1;
var rect = Dicentang? Sistem.Gambar.Persegi Panjang baru (Lebar – r – 1, 0, r, r)
: Sistem.Gambar.Rectangle(0, 0, r, r);
e.Graphics.FillEllipse(Dicentang ? Brushes.Green : Brushes.LightSlateGray, rect);
}
}
}
}

di bawah ini adalah tautan ke Sumber aslinya:

[^]

Solusi 1

コメント

タイトルとURLをコピーしました