PDA

View Full Version : تغییر آدرس در web browser



SaeedEzzati
چهارشنبه 13 دی 1391, 21:35 عصر
سلام

من یه webbrowser دارم ، بعد اینکه صفحه ای لود شد روی یک دکمه خاص کلیک میکنم تا وارد صفحه جدید بشه

تا پایان کلیک بر روی دکمه مشکلی نیست ، فقط بعد اینکه روی دکمه کلیک کردم ، چطوری به برنامه بفهمونم که منتظر بمون ، از این کدها استفاده کردم اما جواب نداد "


while(webbrowser.redystate != readystate.completed)
{application.doevents();}


در واقع میخوام تغییر آدرس صفحه رو متوجه بشم !

samadblaj
چهارشنبه 13 دی 1391, 22:01 عصر
در واقع میخوام تغییر آدرس صفحه رو متوجه بشم !

سلام برای فهمیدن تغییر صفحه میتونید از رویداد زیر استفاده کنید :

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
MessageBox.Show("okey");

}

SaeedEzzati
چهارشنبه 13 دی 1391, 22:23 عصر
ممنون از جوابتون

حالا اگه بخوام بعد از کلیک بر روی دکمه منتظر بمونه تا صفحه لود بشه یاید این کارو بکنم ؟



private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
while(webbrowser.redystate != readystate.completed)
{application.doevents();}



}

samadblaj
چهارشنبه 13 دی 1391, 22:37 عصر
خواهش میکنم ببینید روی webbrowser دو بار کلیک کنید به رویداد زیر ایجاد میشه این رویداد زمانی اجرا میشه که صفحه کامل load َشده باشه بعد... (میتونید کد دکمه رو در رویداد زیر بذارید تا بعد از load کامل کدها اجرا بشه)...
اگه درست متوجه نشدم بفرمایید :

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

}
موفق باشید./

SaeedEzzati
چهارشنبه 13 دی 1391, 22:48 عصر
بازم ممنون

کل داستان اینه
من در صفحه 1 با استفاده از کد زیر روی دکمه ای کلیک میکنم تا صفحه 2 باز بشه

InvokeMember("click");


می خوام بعد اینکه صفحه 2 لود شد ، یه سری کد در صفحه 2 اچرا بشه
مشکلم ایتجاست که این کدهایی که میخوام در صفحه 2 لود بشه کجا بذارم و اینکه چطوری به webbrowser بگم که بعد کلیک بر روی دکمه منتظر بمون تا صفحه 2 باز بشه !

samadblaj
چهارشنبه 13 دی 1391, 23:08 عصر
والا من گیرایم ضعیف هستش ولی یه روش بهتون پیشنهاد میکنم....

یه متغییر تعریف کنید : بار اول که صفحه load شد این متغییر یکی بهش اضاف بشه که فرضا بشه 1 توی دیکمه هم مینویسیم اگه متغییر 1 بود (صفحه تغییر کرده) کد ها اجرا بشن به همین شکل...

مهرداد صفا
پنج شنبه 14 دی 1391, 16:47 عصر
سلام
به این شیوه هم میتوانید عمل کنید:

string address = "http://barnamenevis.org/";
webBrowser1.Navigate(address);
webBrowser1.DocumentCompleted += (object sender, WebBrowserDocumentCompletedEventArgs E) =>
{
if (E.Url.OriginalString == address)
{
//you can write your code here...
MessageBox.Show("page completed!");
}
};

SaeedEzzati
پنج شنبه 14 دی 1391, 17:07 عصر
ممنون از جوابتون

اما میئله من یه چیز دیگست ، یعنی بعد از navigate به آدرس خاص ، در صفحه ای که لود میشه روی دکمه ای بصورت اتوماتیک کلیک میکنه تا صفحه ای دیگه باز بشه ، من میخام زمان بین کلیک بر روی دکمه و باز شدن صفحه جدید رو منتظر بمونه

مهرداد صفا
پنج شنبه 14 دی 1391, 17:25 عصر
ممنون از جوابتون

اما میئله من یه چیز دیگست ، یعنی بعد از navigate به آدرس خاص ، در صفحه ای که لود میشه روی دکمه ای بصورت اتوماتیک کلیک میکنه تا صفحه ای دیگه باز بشه ، من میخام زمان بین کلیک بر روی دکمه و باز شدن صفحه جدید رو منتظر بمونه
خواهش میکنم.
در کل تفاوتی نمیکند. به هر حال شما با کلیک کردن به یک صفحه navigate میکنید که این صفحه یک آدرس دارد (آن را به جای متغیر address در کد بالا قرار دهید) و پس از کامل شدن صفحه مربوطه رویداد DocumentCompleted رخ می دهد.

SaeedEzzati
جمعه 15 دی 1391, 14:53 عصر
مشکل من اینه که بعد از submit کردن یک فرم در یک webbrowser میخوام منتظر بمونه تا صفحه جدید لود بشه . متاسفانه راه های بالا جواب ندادن !
اگه از این استفاده کنم :

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{

}



یا از این

while(webbrowser.redystate != readystate.completed)
{application.doevents();}




چون بلافاصله بعد از submit کردن فرم آدرس صفحه رو چک میکنه همیشه false هست !