کدهای رویداد shown فرم اصلی :
if (!classmain.b)
{
formlogin frm = new formlogin();
frm.ShowDialog();
}
بعد میره تو فرم لاگین و اگه پسورد درست بود classmin.b = true میشه و formlogin.visible= false میشه. کدهام چیز خاصی توش نیست! با توضیحات شما فکر نمی کنم مشکل از shown باشه.
این که کد چه موقع 2 بار اجرا میشه هم نمی دونم بعضی اوقات این اتفاق میوفته. یعنی برنامه ای که تو سیستم مشتریه با یک کلیک 2 بار باز میشه وقتی یکی رو می بنده هر دو بسته میشه!
توی program.cs هم کدهام اینه :
static void Main()
{
bool ok;
Mutex m = new Mutex(true, " ", out ok);
if (!ok)
{
MessageBox.Show("برنامه در حال اجرا است");
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new frmtemp("","","","","","",""));
}
یعنی با این کد باید مانع از اجرای مجدد برنامه وقتی برنامه در حال اجراست بشه.
کدهای frmtemp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Hesab
{
public partial class frmtemp : Form
{
string Id = ""; string name = ""; string address = ""; string phone = ""; string mobile = ""; string fax = ""; string description = "";
public frmtemp(string ID, string Name, string Address, string Phone, string Mobile, string Fax, string Description)
{
InitializeComponent();
Id = ID;
name = Name;
address = Address;
phone = Phone;
mobile = Mobile;
fax = Fax;
description = Description;
}
private void frmtemp_Activated(object sender, EventArgs e)
{
var f = new frmforoshmin(Id, name, address, phone, mobile, fax, description);
f.Show();
this.Hide();
}
private void frmtemp_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}