내가지금 만들고싶어하는게
private System.Windows.Forms.Button[] button = new System.Windows.Forms.Button[26];
private void InitializeComponent(){
for (int i = 0; i < 26; i++)
{
this.button[i] = new System.Windows.Forms.Button();
this.button[i].CIick += new System.EventHandler(button_CIick(i));
this.button[i].Location = new System.Drawing.Point(100,10+30*i);
this.button[i].Size = new System.Drawing.Size(20,20);
this.button[i].Text = ((char)('A'+i)).ToString(); //ABCDEFG ..... XYZ 버뜬들
}
for (int i = 0; i < 26 ; i++)
{
this.Controls.Add(this.button[i]);
}
}
이렇게 버튼들이 A,B,C,D,E .. X, Y, Z 까지 만들어졌짠아?
그리고나서 eventhandler에
public void button_CIick(object sender, EventArgs e , int i)
{
MessageBox.Show(button[i].Text);
}
이런식으로 하고싶었는데 이런식으로는 안되더라.
이런거하려면 무슨지랄 하면됨?
핸들러함수가 원래 파라메타 2개임. 저 버튼들에 하나의 핸들러를 연결해서 구분하고자 하는게 의도지?
Button btn = sender as Button;
아놔.. 이거 엔터치면 등록이네 ㅋㅋ
ㅇㅇㅇㅇ 맞아 버튼들에 하나의 핸들러 연결해서 구분하고자 하는게 의도야.
간단하게 예를들자면
와시발 쉬프트 앤터 눌러도 내려가네 ㅡㅡ
ㅋㅋㅋ
sender 를 Button으로 캐스팅하면.. 현재 버튼이니까.. 그냥 btn.Text 하면됨
짧게 예로 한줄 써주면안되?
Button btn = sender as Button; 는 했는데 btn을 어디다 써야하는지 모르겠어 나병신이라서
그런데 Button btn = sender as Button; 이거를 이벤트 핸들러안에다 넣어야해? 아니면 ComponnentInit 안에다 써야되?
아아니다! 와 진짜 개고맙다!!!!
개고맙다시발색갸!!!!! 진짜절한다 시발
ㅋㅋㅋㅋㅋ
ㅋㅋ 귀요미
야 이거 다른거에도 다 적용되는거냐? TextBox 나 다른거도 다? 현재 선택된거 기준으로?
ㅇㅇ 핸들러의 sender 파라메타는 현재 이벤트가 일어난 객체를 말하는거라.. 원래 객체형으로 casting 해서 쓰면되. as를 써도 되고..직접 캐스팅해도 되고.. Button btn = (Button)sender; 이렇게해도 됨
프잘알 성님 고맙습니다 오늘도 하나배웟네시발 아 언제 다배우나