[ad_1]
xin chào, tôi cần tạo một nút dùng để ẩn đối tượng nhãn hoặc làm xuất hiện lại.
vì vậy tôi cần nút khi nhấn chìm vào giống như một công tắc và làm cho nhãn biến mất và khi nhấn lại, nút này sẽ nổi lên và làm cho nhãn xuất hiện.
có ý tưởng nào về cách tạo nút chuyển đổi không?
Giải pháp 2
Bạn có thể sử dụng một hộp kiểm cho mục đích này.
Bạn cũng có thể sử dụng nút (đẩy) thông thường, trong trình xử lý sự kiện nhấp chuột chỉ cần chuyển nút Visible
Thuộc tính của nhãn:
myLabel.Visible = Not myLabel.Visible
Giải pháp 3
Nút chuyển đổi không gì khác hơn là một Nút đơn giản
yêu cầu một giá trị (ví dụ: giá trị boolean này có đúng không)
và sau đó một if(boolean == true) đơn giản làm điều này, làm điều đó
boolean boo = false; buttonPressed() { if(boo == true) { boo = false; doSomething.Visible = true; } else { boo = true; doSomething.Visible = false; } }
Giải pháp 4
chỉ cần sử dụng mã này
checkBox.Appearance = System.Windows.Forms.Appearance.Button
Giải pháp 5
Tôi lấy cái này từ đâu đó và nó hoạt động rất quyến rũ !!!
1. Nhấp chuột phải vào dự án trong VS và chọn ‘Thêm’ rồi chọn ‘Kiểm soát người dùng…’
2. Đặt tên cho tệp mới của bạn là “Toggle.vb”
3. Dán mã bên dưới (vui lòng Chú ý đến bước 4):
VB.NET
Hệ thống nhập khẩu.Bản vẽ
Hệ thống nhập khẩu.Bản vẽ
Hệ thống nhập khẩu. Draw. Draw2D
Nhập khẩu System.Windows.Forms
Chuyển đổi lớp công khai
Kế thừa System.Windows.Forms.UserControl
Riêng tư _được kiểm tra dưới dạng Boolean
Tài sản công cộng được kiểm tra dưới dạng Boolean
Lấy
Trả lại _đã kiểm tra
Kết thúc Nhận
Set(Giá trị ByVal dưới dạng Boolean)
Nếu không _checked.Equals(value) thì
_đã kiểm tra = giá trị
Tôi.OnCheckedChanged()
Kết thúc nếu
Bộ kết thúc
Thuộc tính cuối cùng
Được bảo vệ có thể ghi đè phụ OnCheckedChanged()
RaiseEvent CheckedChanged(Tôi, EventArgs.Empty)
Kết thúc phụ
Sự kiện công khai đã được kiểm tra đã thay đổi(Người gửi ByVal dưới dạng đối tượng, ByVal e dưới dạng EventArgs)
Ghi đè được bảo vệ Sub OnMouseClick(e As MouseEventArgs)
Tôi.Đã kiểm tra = Không phải tôi.Đã kiểm tra
Tôi.Không hợp lệ()
MyBase.OnMouseClick(e)
Kết thúc phụ
Ghi đè được bảo vệ Sub OnPaint(ByVal e As PaintEventArgs)
Me.OnPaintBackground(e)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
Sử dụng đường dẫn = GraphicsPath mới()
Dim d = Đệm.Tất cả
Dim r = Me.Chiều cao – 2 * d
path.AddArc(d, d, r, r, 90, 180)
path.AddArc(Me.Width – r – d, d, r, r, -90, 180)
path.Closefigure()
e.Graphics.FillPath(If(Đã chọn, Brushes.DarkGray, Brushes.LightGray), đường dẫn)
r = Chiều cao – 1
Dim trực tràng = If(Đã chọn, New System.draw.Rectangle(Width – r – 1, 0, r, r), New System.draw.Rectangle(0, 0, r, r))
e.Graphics.FillEllipse(If(Đã chọn, Brushes.Green, Brushes.LightSlateGray), trực tràng)
Kết thúc sử dụng
Kết thúc phụ
Kết thúc lớp học
4. Chuyển sang biểu mẫu của bạn và kéo điều khiển ‘chuyển đổi’ từ Hộp công cụ sang biểu mẫu (trong một số trường hợp, nút chuyển đổi không xuất hiện ngay trên Hộp công cụ. Trong trường hợp đó, hãy làm như sau:
Đi đến Công cụ > Tùy chọn > Windows Forms Designer > Chung
Ở cuối danh sách, bạn sẽ tìm thấy Hộp công cụ > AutoToolboxPopulate mà khi cài đặt mới sẽ mặc định là Sai. Đặt nó đúng và sau đó xây dựng lại giải pháp của bạn. Các điều khiển người dùng trong giải pháp của bạn sẽ được tự động thêm vào hộp công cụ. Bạn cũng có thể phải tải lại giải pháp.
Nếu Kiểm soát người dùng của bạn nằm trong thư viện, bạn có thể thêm phần này vào Hộp công cụ bằng cách sử dụng
Hộp công cụ -> nhấp chuột phải -> Chọn Mục -> Duyệt
Chọn tổ hợp của bạn bằng Điều khiển người dùng.
5. Kích thước và cài đặt có thể được thay đổi như điều khiển tiêu chuẩn
6. Màu sắc có thể được thay đổi trong phương thức OnPaint của Toggle Class
Mã C#:
sử dụng System.draw;
sử dụng System.draw.draw2d;
sử dụng System.Windows.Forms;
không gian tên Your_Project_Name
{
chuyển đổi lớp: Hộp kiểm
{
chuyển đổi công khai()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
Phần đệm = Phần đệm mới(6);
}
ghi đè được bảo vệ void OnPaint(PaintEventArgs e)
{
this.OnPaintBackground(e);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
sử dụng (var path = new GraphicsPath())
{
var d = Padding.All;
var r = this.Height – 2 * d;
path.AddArc(d, d, r, r, 90, 180);
path.AddArc(this.Width – r – d, d, r, r, -90, 180);
path.Closefigure();
e.Graphics.FillPath(Đã kiểm tra? Brushes.DarkGray : Brushes.LightGray, path);
r = Chiều cao – 1;
var reg = Đã kiểm tra chưa? System.draw.Rectangle mới(Chiều rộng – r – 1, 0, r, r)
: mới System.draw.Rectangle(0, 0, r, r);
e.Graphics.FillEllipse(Đã kiểm tra? Brushes.Green : Brushes.LightSlateGray, trực tràng);
}
}
}
}
bên dưới là liên kết đến Nguồn gốc:
Giải pháp 1
xem liên kết này bạn sẽ nhận được ý tưởng
[ad_2]
コメント