ユーザーコントロールについて
現在C#のクラスライブラリについてユーザーコントロールを作成しています。
ビルドした.dllを参照追加してボタン等を配置する感じです。
いきなり質問に入ります。クリックイベントをユーザー側(.dllを使う側)が作成してイベントを入れても発生しません。解決策はありますか?
デザイナーの時点でダブルクリックすると、イベントが作成されますがそのイベントをクリックイベントにさせるにはどうしたらいいですか?
C#
1[DefaultEvent("Click")] 2 public partial class SharpButton : UserControl 3 { 4 public SharpButton() 5 { 6 InitializeComponent(); 7 } 8 9 int ev; 10 11 private Color RotationColorSet; 12 [Browsable(true)] 13 [Description("Buttonの枠の色を変えます。")] 14 public Color FrameColor 15 { 16 get 17 { 18 return RotationColorSet; 19 } 20 set 21 { 22 RotationColorSet = value; 23 pictureBox1.BackColor = pictureBox2.BackColor = pictureBox3.BackColor = pictureBox4.BackColor = RotationColorSet; 24 } 25 } 26 27 28 29 private async void btn_MouseDown(object sender, MouseEventArgs e) 30 { 31 ev = 1; 32 await Task.Run(() => 33 { 34 for (int i = btn.BackColor.B; i < 98; i++) 35 { 36 if (ev == 1) 37 { 38 btn.BackColor = Color.FromArgb(i, i, i); 39 Thread.Sleep(5); 40 } 41 } 42 }); 43 } 44 45 private async void btn_MouseEnter(object sender, EventArgs e) 46 { 47 ev = 2; 48 //pictureBox1.BackColor = pictureBox2.BackColor = pictureBox3.BackColor = pictureBox4.BackColor = BackColor; 49 await Task.Run(() => 50 { 51 for (int i = btn.BackColor.B; i < 78; i++) 52 { 53 if (ev == 2) 54 { 55 btn.BackColor = Color.FromArgb(i, i, i); 56 Thread.Sleep(3); 57 } 58 } 59 }); 60 } 61 62 private async void btn_MouseLeave(object sender, EventArgs e) 63 { 64 ev = 3; 65 pictureBox1.BackColor = pictureBox2.BackColor = pictureBox3.BackColor = pictureBox4.BackColor = RotationColorSet; 66 await Task.Run(() => 67 { 68 for (int i = btn.BackColor.B; i > 19; i--) 69 { 70 if (ev == 3) 71 { 72 btn.BackColor = Color.FromArgb(i, i, i); 73 Thread.Sleep(5); 74 } 75 } 76 }); 77 } 78 79 private async void btn_MouseUp(object sender, MouseEventArgs e) 80 { 81 ev = 4; 82 await Task.Run(() => 83 { 84 for (int i = btn.BackColor.B; i > 78; i--) 85 { 86 if (ev == 4) 87 { 88 btn.BackColor = Color.FromArgb(i, i, i); 89 Thread.Sleep(5); 90 } 91 } 92 }); 93 } 94 95 private void SharpButton_Load(object sender, EventArgs e) 96 { 97 pictureBox1.BackColor = pictureBox2.BackColor = pictureBox3.BackColor = pictureBox4.BackColor = RotationColorSet; 98 } 99 100 public event EventHandler LabelClick; 101 private void SharpButton_Click(object sender, EventArgs e) 102 { 103 var h = this.LabelClick; 104 if (h != null) 105 { 106 h(this, e); 107 } 108 } 109 }
C#
1 public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 7 this.sharpButton1.Click += new System.EventHandler(this.sharpButton1_Click); 8 } 9 10 private void sharpButton1_Click(object sender, EventArgs e) 11 { 12 Console.WriteLine("---------- 成功 -------------"); 13 } 14 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/25 05:48
2016/03/25 06:07
2016/03/25 06:36
2016/03/25 06:38
2016/03/25 06:44 編集
2016/03/25 07:10
2016/03/25 07:12
2016/03/25 07:51
2016/03/25 07:54
2016/03/25 07:54
2016/03/25 08:00
2016/03/25 08:02
2016/03/25 08:10
2016/03/25 08:12
2016/03/25 08:24
2016/03/25 08:26
2016/03/25 08:45
2016/03/25 08:47
2016/03/25 08:59
2016/03/25 09:01
2016/03/25 09:02