Как остановить закрытие всего приложения при закрытии формы окна xcool
у меня есть такой проект, как CMS... я работаю над ним.... у меня есть добавить тему xcool ....
здесь есть 50 оконных форм
но теперь проблема заключается в том, что при закрытии одного окна формы закрывается все приложение..
в чем проблема?... Когда я удаляю эту тему, она работает хорошо.
я не нахожу никакого метода закрытия темы.и т.д. Пожалуйста, помогите мне кто-нибудь
Это не простая оконная форма..... я применяю на ней тему.... я также много раз пробовал Form.FormClosing event (или подобное)....
я закрываю форму одного окна(тема применяется), закрывая все приложение...в то время как если бы я удалил тему из него, она работала бы хорошо... но когда применяется тема, то это создает проблемы..
Пожалуйста, помогите мне, я использую темы отсюда... https://www.codeproject.com/articles/33716/WebControls/?fid=1536616&df=90&mpp=25&sort=Position&view=Normal&spc=Relaxed&fr=71&prof=True#usingcode
Что я уже пробовал:
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; using System.Data.Sql; using System.Data.SqlClient; using System.IO; namespace CampusManagement { public partial class YearMonthSet :XCoolForm.XCoolForm { public YearMonthSet() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { // comboBox3.Items.Clear();// MessageBox.Show("" + prft); SqlConnection con = new SqlConnection("user id=;" + "password=;server=localhost\\SQLEXPRESS;" + "Trusted_Connection=yes;" + "database=CMS; " + "connection timeout=30"); con.Open(); ////////////////////YMCode/////////////// ///////////////////////////////////////////////////////for year month code //////////////////////////////// SqlCommand cmd03 = con.CreateCommand(); cmd03.CommandText = "SELECT [YMCode] FROM [CMS].[dbo].[YearMonth] where [YCode]=" + comboBox1.SelectedValue + " and [MCode]=" + comboBox5.SelectedValue + ""; SqlDataReader dr; dr = cmd03.ExecuteReader(); dr.Read(); string ymcode = dr.GetValue(0).ToString(); Global.YMcode1 = ymcode.ToString(); Global.Yeaar1 = comboBox1.Text; Global.Month1 = comboBox5.Text; MessageBox.Show("Year Month Changed Successfully! "); dr.Close(); this.Hide(); } catch (Exception ee) { MessageBox.Show("Error! " + ee.ToString()); } label4.Text =Global.Month1+ Global.Yeaar1.ToString(); } private XmlThemeLoader xtl = new XmlThemeLoader(); private void YearMonthSet_Load(object sender, EventArgs e) { this.TitleBar.TitleBarBackImage = CampusManagement.Properties.Resources.predator_256x256; this.MenuIcon = CampusManagement.Properties.Resources.alien_vs_predator_3_48x48.GetThumbnailImage(24, 24, null, IntPtr.Zero); xtl.ThemeForm = this; this.Border.BorderStyle = XCoolForm.X3DBorderPrimitive.XBorderStyle.Flat; this.TitleBar.TitleBarBackImage = CampusManagement.Properties.Resources.Mammooth_1; this.TitleBar.TitleBarCaption = "Campus Management System"; xtl.ApplyTheme(Path.Combine(Environment.CurrentDirectory, @"..\..\Themes\BlueWinterTheme.xml")); label4.Text = Global.Month1 + Global.Yeaar1.ToString(); // TODO: This line of code loads data into the 'cMSDataSetMonth.Month' table. You can move, or remove it, as needed. this.monthTableAdapter.Fill(this.cMSDataSetMonth.Month); // TODO: This line of code loads data into the 'cMSDataSetYear.Year' table. You can move, or remove it, as needed. this.yearTableAdapter.Fill(this.cMSDataSetYear.Year); }
Khuram Shahzad
Это не простая оконная форма ...... я применяю на ней тему .....я также попробовал приложение.Run(new Main()); много раз ....
я закрываю форму одного окна(тема применяется), закрывая все приложение...в то время как если бы я удалил тему, она работала бы хорошо... но когда применяется тема, то это создает проблемы..
Пожалуйста, помогите мне
Richard Deeming
cmd03.CommandText = "SELECT [YMCode] FROM [CMS].[dbo].[YearMonth] where [YCode]=" + comboBox1.SelectedValue + " and [MCode]=" + comboBox5.SelectedValue + "";
Не делай этого так! Ваш код почти наверняка уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
cmd03.CommandText = "SELECT [YMCode] FROM [CMS].[dbo].[YearMonth] where [YCode]=@YCode and [MCode]=@MCode"; cmd03.Parameters.AddWithValue("@YCode", comboBox1.SelectedValue); cmd03.Parameters.AddWithValue("@MCode", comboBox5.SelectedValue);
Richard Deeming
И пока вы исправляете вещи, начните давать своим элементам управления значимые имена, а не принимать имя Visual Studio по умолчанию для всего.
Конечно, вы можете вспомнить, что comboBox42
представляет сейчас Но когда вы вернетесь, чтобы отредактировать свой код через несколько недель, вы будете проклинать человека, который его написал!
Khuram Shahzad
Пожалуйста, помогите мне, я использую темы отсюда... https://www.codeproject.com/articles/33716/WebControls/?fid=1536616&df=90&mpp=25&sort=Position&view=Normal&spc=Relaxed&fr=71&prof=True#usingcode