Form1 Den Form2 Deki Butona Tıklama ?
-
projeye form2 ekliyorum orda işlemleri yazıyorum button 1 in altına form 1 deki butonun click eventına ne yazmam lazim ki form 2 deki buton clicki calıssın yani form2.button1 e form1den click yollayamaya calısıyorum yardımlarınız bekliyorum .
-
http://msdn.microsoft.com/en-us/library/system.windows.forms.button.performclick%28v=vs.110%29.aspx
-
hocam tamam bu click yaparda form2 de ki butona ulasamıyorum form2.button1 diye bşye ulasamıorum form2de butonuda public yaptım.
-
şöyle bişey yapılabilir, public bi class oluştur. onda public bir method tanımla. her iki butonun click event'ında o method'u çağır.
MadJack tarafından 29/Ara/14 17:37 tarihinde düzenlenmiştir -
butonadı.performclick()
-
form 2 deki button1_click eventini public yapınca sorun cozuldu sadece buttonu yapmısım herhalde onceden tesekkürler.
-
Eğer böyle bir işleme ihtiyaç duyuyorsanız, tasarımınız yanlıştır.
Şöyle olur aslı:
form1'deki click olayı public yapılır.
form2, kurucu parametresi olarak form1'i alır.
form2 artık form1'e erişebilir.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Tıklandım: " + this.Name);
}
private void Form1_Load(object sender, EventArgs e)
{
}
}public partial class Form2 : Form
{
private Form1 form1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 form)
: this()
{
form1 = form;
form1.Show();
}
private void button1_Click(object sender, EventArgs e)
{
form1.button1_Click(sender, e);
}
}static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2(new Form1()));
} -
api kullanarak yaparsan daha saglıklı olur api ile farklı uygumalarin butonlarinada tiklatabilirsin
findwindowexp apisiyle pencerenumarasini bul sendmessage ile tıklama işlemini gerçekleştir
ustura tarafından 30/Ara/14 01:34 tarihinde düzenlenmiştirvb.net bilmedigim için aşagadaki örnegi baska bir siteden kopyaladim
privateconstint WM_CLOSE =16;privateconstint BN_CLICKED =245;[DllImport("user32.dll",CharSet=CharSet.Auto)]publicstaticexternintSendMessage(int hWnd,int msg,int wParam,IntPtr lParam);[DllImport("user32.dll",SetLastError=true)]publicstaticexternIntPtrFindWindowEx(IntPtr parentHandle,IntPtr childAfter,string className,string windowTitle);//this works hwnd =FindWindow(null,"Message");if(hwnd!=0)SendMessage(hwnd, WM_CLOSE,0,IntPtr.Zero);//this doesn't work. hwndChild =FindWindowEx((IntPtr)hwnd,IntPtr.Zero,"Button","ok");SendMessage((int)hwndChild, BN_CLICKED,0,IntPtr.Zero); -
edit
ustura tarafından 30/Ara/14 01:28 tarihinde düzenlenmiştir
