Hej
Jeg har udviklet et program i C#, hvor formålet var at jeg på baggrund af records i en bestemt tabel, skulle kunne oprette en TabPage i en TabControl og så inde i denne TabPage placere en Windows Form som control. Denne del virker også fint, men jeg kan ikke få inde ud hvorfor at den springer helt forkert når jeg benytter tabulator.
Jeg har f.eks. en tekstboks i min indsatte WinForms som hedder textBoxUserName. Denne har i formularen TabIndex=1. Næste felt (textbox2) har så TabIndex=2, så helt naturligt skulle den gå ned i textbox2, når jeg trykker på tabulatoren. I stedet for at gøre det, springer den helt ud af min TabControl og ned til en knap jeg benytter nederst i hovedformularen.
Køres den indlejrede formular som et særskilt vindue, f.eks. med MainForm som MDI-container, så er der intet problem.
TabPages oprettes med denne kode:
- private void MainForm_Load(object sender, EventArgs e)
- {
- try
- {
- using (WebshopDataContext DB = new WebshopDataContext(this.WSConfiguration))
- {
- this.Data = DB.WebshopData.Where(wd => wd.ItemNo == this.WSConfiguration.KeyValue1).ToList();
- this.Item = DB.Inventories.Where(item => item.Item == this.WSConfiguration.KeyValue1).First();
- this.InternetGroups = DB.ItemInternetGroups.Where(item => item.Item == this.WSConfiguration.KeyValue1).ToList();
- this.Languages = DB.TextHolders.Where(th => th.Id == "Language").ToList();
- this.WebshopConfiguration = DB.WebshopConfiguration.First();
- this.PriceList = DB.ItemPrices.FirstOrDefault(ip => ip.PriceList.ToString() == this.WebshopConfiguration.PriceList && ip.Item == Item.Item);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- List<TabPage> tabpages = this.CreateTabs();
- this.tabControlFormContainer.Controls.AddRange(tabpages.ToArray());
- this.dataGridViewItemInternetGroups.DataSource = this.InternetGroups;
- this.dataGridViewItemInternetGroups.Columns["RecordID"].Visible = false;
- this.dataGridViewItemInternetGroups.Columns["Item"].Visible = false;
- this.dataGridViewItemInternetGroups.Columns["GUID"].Visible = false;
- this.dataGridViewItemInternetGroups.Columns["Group"].HeaderText = "Gruppe";
- this.dataGridViewItemInternetGroups.Columns["Resume"].HeaderText = "Navn";
- }
- private List<TabPage> CreateTabs()
- {
- List<TabPage> tabpages = new List<TabPage>();
- if (this.WebshopConfiguration.MultiLanguage)
- {
- foreach (TextHolder language in this.Languages)
- {
- if (this.Data.Count == 0)
- {
- this.Data.Add(new WebshopData { ItemNo = this.Item.Item, LangStaticID = language.Ix.ToString(), Language = language.Text });
- }
- else if (this.Data.Find(wd => wd.ItemNo == this.Item.Item && wd.LangStaticID == language.Ix.ToString() && wd.Language == language.Text) == null)
- {
- this.Data.Add(new WebshopData { ItemNo = this.Item.Item, LangStaticID = language.Ix.ToString(), Language = language.Text });
- }
- tabpages.Add(this.GenerateTab(language));
- }
- }
- else
- {
- if (this.Data.Count == 0)
- {
- this.Data.Add(new WebshopData { ItemNo = this.Item.Item, LangStaticID = this.Languages.Find(lang => lang.Ix == 1).Ix.ToString(), Language = this.Languages.Find(lang => lang.Ix == 1).Text });
- }
- tabpages.Add(this.GenerateTab(this.Languages.Find(lang => lang.Ix == 1)));
- }
- return tabpages;
- }
- private TabPage GenerateTab(TextHolder language)
- {
- WebshopData tabdata = this.Data.FirstOrDefault(wd => wd.Language == language.Text);
- TabPage tp = new TabPage(language.Text);
- tp.Width = this.tabControlFormContainer.Width;
- tp.Height = this.tabControlFormContainer.Height;
- try
- {
-
- TabForm tabfrm = new TabForm((tabdata == null) ? new WebshopData { ItemNo = Item.Item, Language = language.Text, LangStaticID = language.Ix.ToString() } : tabdata);
- tabfrm.TopLevel = false;
- tabfrm.FormBorderStyle = FormBorderStyle.None;
- tabfrm.Visible = true;
- tabfrm.Dock = DockStyle.Top;
- tabfrm.Width = tp.Width;
- tabfrm.Height = tp.Height;
- tp.Controls.Add(tabfrm);
-
- }
- catch (Exception fex)
- {
- MessageBox.Show(fex.Message);
- }
- return tp;
- }
Til kommunikation med databasen anvendes Entity Framework (6.1.3).
Er der nogen som har en idé til hvorfor min tabulatorrækkefølge er helt i skoven?
Indlæg senest redigeret d. 20.01.2016 09:26 af Bruger #17072