PDA

View Full Version : بسته شدن يك فرم بعد از باز شدن فرم ديگر



alen332
یک شنبه 07 شهریور 1389, 10:38 صبح
با سلام و ادب ؛ من يك مشكل دارم . فرم اوليه من صفحه LOGIN هست مي خوام وقتي درست LOGIN كردم (User ,Password) فرم مذكور بسته بشه و فرم ديگري باز بشه كد زير رو هم براش نوشتم ولي فرم اوليه (فرم login) بسته نمي شه يعني شرط if هول تو برنامه اجرا نمي شه

using System;
using System.Data;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.OleDb;
namespace WindowsApplication1
{
public partial class Pass1 : Form
{
private const string _ConnectionString =
"Data Source=221-603107764\\SQLEXPRESS;Initial Catalog=pubs;Integrated Security=True";


public Pass1()
{
InitializeComponent();
}
public bool ValidateUserNamePassword(string _username, string _password)
{
SqlConnection objConnection;
objConnection = new SqlConnection(_ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = objConnection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "reptq3";
SqlParameterCollection sqlParams = cmd.Parameters;
sqlParams.AddWithValue("@UserName", _username);
sqlParams.AddWithValue("@Password", _password);
objConnection.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
if (dr.Read())
{
// // this will return true if a row matching the username and password is found.
// // this means that the user's input is valid
return true;
}
else
{
return false;
}
dr.Close();
objConnection.Close();
}
private void button1_Click(object sender, EventArgs e)
{

string username = textBox1.Text;
string password = textBox2.Text;
if (ValidateUserNamePassword(username, password))
{
Pass1 pass = new Pass1();
pass.Close();
}
if (ValidateUserNamePassword(username, password))
{

Form1 f1 = new Form1();
f1.Show();
}
else
{
MessageBox.Show(" نام كاربر و يا كلمه عبور اشتباه است ", "خطاي ورود");

return;
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}


}
}

ایمان مدائنی
یک شنبه 07 شهریور 1389, 10:46 صبح
دوست عزيز اگه فرم لگين فرم اول برنامه ات هست نبايد ببندي بايد اون هايد كني بعد فرم مين رو باز كني



THIS.HIDE();

alen332
یک شنبه 07 شهریور 1389, 11:19 صبح
يك سوال ديگه چطور ميشه بدون استفاده از كليد tab و فقط با Enter بين textbox ها در فرم حركت كرد (به هر ترتيب دل خواه ) بعنوان مثال تو يك فرم 10 txtbox و 3 cmdbutton داريم مي خوام با زدن Enter اول مكان نما به txtbox 1 رفته با بعدي به txtbox 2 و ... و با Enter بعدي به cmdbutton 2 مكان نما انتقال پيدا كنه . مرسي

mmd2009
یک شنبه 07 شهریور 1389, 11:28 صبح
با سلام

تو رویداد KeyDown مربوط به textBox1 این کد رو بذارید



if (e.KeyCode == Keys.Enter)
textBox2.Focus();

اَرژنگ
یک شنبه 07 شهریور 1389, 11:31 صبح
دوست عزيز اگه فرم لگين فرم اول برنامه ات هست نبايد ببندي بايد اون هايد كني بعد فرم مين رو باز كني



THIS.HIDE();



اشتباه بودن این روش قبلاً گفته شده :
http://barnamenevis.org/forum/showthread.php?p=1055776#post1055776

یک روش ساده سطحی که لاقل از به جایه حداقل معیار استفاده بشد:
http://barnamenevis.org/forum/showthread.php?p=453304#post453304

و روش درست حسابی که بالا رفتن سطح و دانش کمک کند:
http://barnamenevis.org/forum/showthread.php?t=94791

alen332
یک شنبه 07 شهریور 1389, 12:17 عصر
كد php براي حركت بين txtbox ها با كليد enter كارساز نيست لطفا اگر كد WindowsAPPlication داريد راهنمايي كنيد
--------------------
يك سوال ديگه چطور ميشه بدون استفاده از كليد tab و فقط با Enter بين textbox ها در فرم حركت كرد (به هر ترتيب دل خواه ) بعنوان مثال تو يك فرم 10 txtbox و 3 cmdbutton داريم مي خوام با زدن Enter اول مكان نما به txtbox 1 رفته با بعدي به txtbox 2 و ... و با Enter بعدي به cmdbutton 2 مكان نما انتقال پيدا كنه . مرسي

C Sharp
یک شنبه 07 شهریور 1389, 12:19 عصر
ضمن تایید صحبتهاب جناب آرژنگ ، این روش که به نوعی الهام گرفته از روش جناب sinpin هست رو هم مد نظر داشته باشین بد نیست:

http://barnamenevis.org/forum/showpost.php?p=1060390&postcount=4

روش جناب sinpin:
http://barnamenevis.org/forum/showpost.php?p=466653&postcount=2

mmd2009
یک شنبه 07 شهریور 1389, 12:22 عصر
جوابش رو 3 پست بالاتر دادم که؟؟؟


كد php براي حركت بين txtbox ها با كليد enter كارساز نيست لطفا اگر كد WindowsAPPlication داريد راهنمايي كنيد
--------------------
يك سوال ديگه چطور ميشه بدون استفاده از كليد tab و فقط با Enter بين textbox ها در فرم حركت كرد (به هر ترتيب دل خواه ) بعنوان مثال تو يك فرم 10 txtbox و 3 cmdbutton داريم مي خوام با زدن Enter اول مكان نما به txtbox 1 رفته با بعدي به txtbox 2 و ... و با Enter بعدي به cmdbutton 2 مكان نما انتقال پيدا كنه . مرسي



با سلام

تو رویداد KeyDown مربوط به textBox1 این کد رو بذارید



if (e.KeyCode == Keys.Enter)
textBox2.Focus();

alen332
یک شنبه 07 شهریور 1389, 12:31 عصر
درسته ولي تو windows application از KeyCode ارور مي گيره 'System.EventArgs' does not contain a definition for 'KeyCode'

C Sharp
یک شنبه 07 شهریور 1389, 12:31 عصر
كد php براي حركت بين txtbox ها با كليد enter كارساز نيست لطفا اگر كد WindowsAPPlication داريد راهنمايي كنيد
--------------------
يك سوال ديگه چطور ميشه بدون استفاده از كليد tab و فقط با Enter بين textbox ها در فرم حركت كرد (به هر ترتيب دل خواه ) بعنوان مثال تو يك فرم 10 txtbox و 3 cmdbutton داريم مي خوام با زدن Enter اول مكان نما به txtbox 1 رفته با بعدي به txtbox 2 و ... و با Enter بعدي به cmdbutton 2 مكان نما انتقال پيدا كنه . مرسي

خاصیت KeyPreview فرم رو True بذار

واسه رویداد KeyPressed فرم :




private void SubForm_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
SendKeys.Send("{TAB}");
}
}

alen332
یک شنبه 07 شهریور 1389, 12:35 عصر
در واقع متد KeyCode تعريف نشده و فقط گزينه هاي Equals و GetHashCode و GetType و ToString وجود داره

mmd2009
یک شنبه 07 شهریور 1389, 12:35 عصر
درسته ولي تو windows application از KeyCode ارور مي گيره 'System.EventArgs' does not contain a definition for 'KeyCode'



میشه بپرسم تو چه رویدادی نوشتید که ارور میگیره ؟؟؟ مطمئنید تو KeyDown بوده؟

alen332
یک شنبه 07 شهریور 1389, 12:49 عصر
دوست عزيز اين كد رو هم اجرا نمي كنه مكان نما با فشاد Enter به txtbox بعد نميره

alen332
یک شنبه 07 شهریور 1389, 12:55 عصر
بله كد زير رو نوشتم

private void textBox1_KeyDown(object sender, EventArgs e)
{
if (e.KeyCode == Keys.Enter)
textBox2.Focus();
}

mmd2009
یک شنبه 07 شهریور 1389, 13:08 عصر
این نمونه رو ببینید درست کار کرد.

تو تکست بالایی اینتر رو بزنید.

تو صفحه قبلی یکی از دوستان هم sendkeys رو گفته. اونم خوبه ولی باید TabIndex رو تنظیم بکنید