TabIndex non funziona

di il
7 risposte

TabIndex non funziona

Ciao a tutti,

ho un form di login (non proprio semplice) con 2 textbox il cui TabIndex è 1 e 2, inseriti in 2 panel con TabIndex 0 e TabStop False, poi quattro button e diverse label. Comunque la pressione del tasto tab non segue la numerazione e salta (secondo me) ai controlli come li ho creati nel tempo… Uso Visual Studio 2022 ed è un progetto WinForm C#. Sapete darmi qualche indicazione? o può essere un bug???

Comunque per risolvere il problema ho pensato di inserire una label che al cambio di focus di ogni control mi leggesse la proprietà TabIndex del controllo col focus. Pensavo fosse più semplice ma nel form non trovo nessun evento di cambio focus figlio, non so se mi spiego. Prima di mettere una funzione per ogni singolo controllo nell'evento LostFocus mi chiedevo come realizzare una cosa del genere.

7 Risposte

  • Re: TabIndex non funziona

    Vi mostri il contenuto del file .Designer.cs di quel form?

  • Re: TabIndex non funziona

    Namespace WindowsFormsCSharp
    {
       partial class frmLogin
       {
           /// <summary>
           /// Required designer variable.
           /// </summary>
           private System.ComponentModel.IContainer components = null;

           /// <summary>
           /// Clean up any resources being used.
           /// </summary>
           /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
           protected override void Dispose(bool disposing)
           {
               if (disposing && (components != null))
               {
                   components.Dispose();
               }
               base.Dispose(disposing);
           }

           #region Windows Form Designer generated code

           /// <summary>
           /// Required method for Designer support - do not modify
           /// the contents of this method with the code editor.
           /// </summary>
           private void InitializeComponent()
           {
               this.button1 = new System.Windows.Forms.Button();
               this.button2 = new System.Windows.Forms.Button();
               this.label1 = new System.Windows.Forms.Label();
               this.textBox1 = new System.Windows.Forms.TextBox();
               this.textBox2 = new System.Windows.Forms.TextBox();
               this.button4 = new System.Windows.Forms.Button();
               this.panel2 = new System.Windows.Forms.Panel();
               this.label3 = new System.Windows.Forms.Label();
               this.label2 = new System.Windows.Forms.Label();
               this.panel4 = new System.Windows.Forms.Panel();
               this.pictureBox4 = new System.Windows.Forms.PictureBox();
               this.panel3 = new System.Windows.Forms.Panel();
               this.pictureBox3 = new System.Windows.Forms.PictureBox();
               this.button3 = new System.Windows.Forms.Button();
               this.panel1 = new System.Windows.Forms.Panel();
               this.linkLabel1 = new System.Windows.Forms.LinkLabel();
               this.label8 = new System.Windows.Forms.Label();
               this.label7 = new System.Windows.Forms.Label();
               this.label6 = new System.Windows.Forms.Label();
               this.label5 = new System.Windows.Forms.Label();
               this.pictureBox2 = new System.Windows.Forms.PictureBox();
               this.panel2.SuspendLayout();
               this.panel4.SuspendLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
               this.panel3.SuspendLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
               this.panel1.SuspendLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
               this.SuspendLayout();
               // 
               // button1
               // 
               this.button1.BackColor = System.Drawing.Color.DodgerBlue;
               this.button1.Cursor = System.Windows.Forms.Cursors.Hand;
               this.button1.FlatAppearance.BorderColor = System.Drawing.SystemColors.ButtonHighlight;
               this.button1.FlatAppearance.BorderSize = 0;
               this.button1.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Yellow;
               this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.DodgerBlue;
               this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
               this.button1.Font = new System.Drawing.Font("Century Gothic", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.button1.ForeColor = System.Drawing.Color.White;
               this.button1.Location = new System.Drawing.Point(36, 265);
               this.button1.Margin = new System.Windows.Forms.Padding(2);
               this.button1.Name = "button1";
               this.button1.Size = new System.Drawing.Size(148, 42);
               this.button1.TabIndex = 3;
               this.button1.Text = "Accedi";
               this.button1.UseVisualStyleBackColor = false;
               this.button1.Click += new System.EventHandler(this.button1_Click);
               // 
               // button2
               // 
               this.button2.BackColor = System.Drawing.Color.Transparent;
               this.button2.Cursor = System.Windows.Forms.Cursors.Hand;
               this.button2.FlatAppearance.BorderSize = 0;
               this.button2.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Yellow;
               this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
               this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
               this.button2.Font = new System.Drawing.Font("Century Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.button2.ForeColor = System.Drawing.Color.DodgerBlue;
               this.button2.Location = new System.Drawing.Point(231, 265);
               this.button2.Margin = new System.Windows.Forms.Padding(2);
               this.button2.Name = "button2";
               this.button2.Size = new System.Drawing.Size(148, 42);
               this.button2.TabIndex = 4;
               this.button2.Text = "Password dimenticata";
               this.button2.UseVisualStyleBackColor = false;
               // 
               // label1
               // 
               this.label1.AutoSize = true;
               this.label1.BackColor = System.Drawing.Color.Transparent;
               this.label1.Font = new System.Drawing.Font("Century Gothic", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.label1.ForeColor = System.Drawing.Color.SteelBlue;
               this.label1.Location = new System.Drawing.Point(110, 96);
               this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
               this.label1.Name = "label1";
               this.label1.Size = new System.Drawing.Size(236, 24);
               this.label1.TabIndex = 0;
               this.label1.Text = "Login to your account";
               // 
               // textBox1
               // 
               this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
               this.textBox1.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.textBox1.ForeColor = System.Drawing.Color.DodgerBlue;
               this.textBox1.Location = new System.Drawing.Point(32, 14);
               this.textBox1.Margin = new System.Windows.Forms.Padding(2);
               this.textBox1.Name = "textBox1";
               this.textBox1.Size = new System.Drawing.Size(402, 20);
               this.textBox1.TabIndex = 1;
               this.textBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);
               this.textBox1.Enter += new System.EventHandler(this.textBox1_Enter);
               // 
               // textBox2
               // 
               this.textBox2.BackColor = System.Drawing.SystemColors.Control;
               this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
               this.textBox2.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.textBox2.Location = new System.Drawing.Point(32, 14);
               this.textBox2.Margin = new System.Windows.Forms.Padding(2);
               this.textBox2.Name = "textBox2";
               this.textBox2.Size = new System.Drawing.Size(402, 20);
               this.textBox2.TabIndex = 2;
               this.textBox2.UseSystemPasswordChar = true;
               this.textBox2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBox2_MouseClick);
               this.textBox2.Enter += new System.EventHandler(this.textBox2_Enter);
               // 
               // button4
               // 
               this.button4.BackColor = System.Drawing.Color.Transparent;
               this.button4.Cursor = System.Windows.Forms.Cursors.Hand;
               this.button4.FlatAppearance.BorderSize = 0;
               this.button4.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
               this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
               this.button4.Font = new System.Drawing.Font("Century Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.button4.ForeColor = System.Drawing.SystemColors.ControlDark;
               this.button4.Location = new System.Drawing.Point(35, 493);
               this.button4.Margin = new System.Windows.Forms.Padding(2);
               this.button4.Name = "button4";
               this.button4.Size = new System.Drawing.Size(389, 26);
               this.button4.TabIndex = 5;
               this.button4.Text = "Registrati per attivare tutte le funzioni del programma...";
               this.button4.UseVisualStyleBackColor = false;
               this.button4.Click += new System.EventHandler(this.button4_Click);
               this.button4.MouseLeave += new System.EventHandler(this.button4_MouseLeave);
               this.button4.MouseMove += new System.Windows.Forms.MouseEventHandler(this.button4_MouseMove);
               // 
               // panel2
               // 
               this.panel2.Controls.Add(this.label3);
               this.panel2.Controls.Add(this.label2);
               this.panel2.Controls.Add(this.panel4);
               this.panel2.Controls.Add(this.panel3);
               this.panel2.Controls.Add(this.button3);
               this.panel2.Controls.Add(this.label1);
               this.panel2.Controls.Add(this.button4);
               this.panel2.Controls.Add(this.button2);
               this.panel2.Controls.Add(this.button1);
               this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
               this.panel2.Location = new System.Drawing.Point(300, 0);
               this.panel2.Name = "panel2";
               this.panel2.Size = new System.Drawing.Size(448, 528);
               this.panel2.TabIndex = 0;
               // 
               // label3
               // 
               this.label3.AutoSize = true;
               this.label3.Location = new System.Drawing.Point(188, 416);
               this.label3.Name = "label3";
               this.label3.Size = new System.Drawing.Size(35, 13);
               this.label3.TabIndex = 0;
               this.label3.Text = "label3";
               // 
               // label2
               // 
               this.label2.AutoSize = true;
               this.label2.Location = new System.Drawing.Point(116, 416);
               this.label2.Name = "label2";
               this.label2.Size = new System.Drawing.Size(55, 13);
               this.label2.TabIndex = 0;
               this.label2.Text = "TabIndex:";
               // 
               // panel4
               // 
               this.panel4.Controls.Add(this.textBox2);
               this.panel4.Controls.Add(this.pictureBox4);
               this.panel4.Location = new System.Drawing.Point(3, 190);
               this.panel4.Name = "panel4";
               this.panel4.Size = new System.Drawing.Size(443, 45);
               this.panel4.TabIndex = 0;
               // 
               // pictureBox4
               // 
               this.pictureBox4.BackColor = System.Drawing.Color.Transparent;
               this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
               this.pictureBox4.Image = global::WindowsFormsCSharp.Properties.Resources._77365;
               this.pictureBox4.Location = new System.Drawing.Point(4, 10);
               this.pictureBox4.Name = "pictureBox4";
               this.pictureBox4.Size = new System.Drawing.Size(24, 24);
               this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
               this.pictureBox4.TabIndex = 0;
               this.pictureBox4.TabStop = false;
               this.pictureBox4.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox4_MouseDown);
               this.pictureBox4.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox4_MouseUp);
               // 
               // panel3
               // 
               this.panel3.BackColor = System.Drawing.Color.White;
               this.panel3.Controls.Add(this.textBox1);
               this.panel3.Controls.Add(this.pictureBox3);
               this.panel3.Location = new System.Drawing.Point(3, 139);
               this.panel3.Name = "panel3";
               this.panel3.Size = new System.Drawing.Size(443, 45);
               this.panel3.TabIndex = 0;
               // 
               // pictureBox3
               // 
               this.pictureBox3.BackColor = System.Drawing.Color.Transparent;
               this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
               this.pictureBox3.Image = global::WindowsFormsCSharp.Properties.Resources._77335;
               this.pictureBox3.Location = new System.Drawing.Point(4, 10);
               this.pictureBox3.Name = "pictureBox3";
               this.pictureBox3.Size = new System.Drawing.Size(24, 24);
               this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
               this.pictureBox3.TabIndex = 0;
               this.pictureBox3.TabStop = false;
               // 
               // button3
               // 
               this.button3.FlatAppearance.BorderSize = 0;
               this.button3.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
               this.button3.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
               this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
               this.button3.Font = new System.Drawing.Font("Verdana", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.button3.ForeColor = System.Drawing.Color.DodgerBlue;
               this.button3.Location = new System.Drawing.Point(418, 0);
               this.button3.Name = "button3";
               this.button3.Size = new System.Drawing.Size(30, 32);
               this.button3.TabIndex = 6;
               this.button3.Text = "X";
               this.button3.UseVisualStyleBackColor = true;
               this.button3.Click += new System.EventHandler(this.button3_Click);
               // 
               // panel1
               // 
               this.panel1.BackColor = System.Drawing.Color.DodgerBlue;
               this.panel1.BackgroundImage = global::WindowsFormsCSharp.Properties.Resources._242058;
               this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
               this.panel1.Controls.Add(this.linkLabel1);
               this.panel1.Controls.Add(this.label8);
               this.panel1.Controls.Add(this.label7);
               this.panel1.Controls.Add(this.label6);
               this.panel1.Controls.Add(this.label5);
               this.panel1.Controls.Add(this.pictureBox2);
               this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
               this.panel1.Location = new System.Drawing.Point(0, 0);
               this.panel1.Name = "panel1";
               this.panel1.Size = new System.Drawing.Size(300, 528);
               this.panel1.TabIndex = 0;
               // 
               // linkLabel1
               // 
               this.linkLabel1.AutoSize = true;
               this.linkLabel1.Font = new System.Drawing.Font("Century Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.linkLabel1.Location = new System.Drawing.Point(258, 502);
               this.linkLabel1.Name = "linkLabel1";
               this.linkLabel1.Size = new System.Drawing.Size(31, 17);
               this.linkLabel1.TabIndex = 0;
               this.linkLabel1.Text = "SYD";
               // 
               // label8
               // 
               this.label8.AutoSize = true;
               this.label8.Font = new System.Drawing.Font("Century Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.label8.ForeColor = System.Drawing.Color.White;
               this.label8.Location = new System.Drawing.Point(163, 502);
               this.label8.Name = "label8";
               this.label8.Size = new System.Drawing.Size(89, 17);
               this.label8.TabIndex = 0;
               this.label8.Text = "Powered by:";
               // 
               // label7
               // 
               this.label7.AutoSize = true;
               this.label7.BackColor = System.Drawing.Color.Transparent;
               this.label7.Font = new System.Drawing.Font("Century Gothic", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.label7.ForeColor = System.Drawing.Color.White;
               this.label7.Location = new System.Drawing.Point(84, 467);
               this.label7.Name = "label7";
               this.label7.Size = new System.Drawing.Size(127, 24);
               this.label7.TabIndex = 0;
               this.label7.Text = "and more...";
               // 
               // label6
               // 
               this.label6.AutoSize = true;
               this.label6.BackColor = System.Drawing.Color.Transparent;
               this.label6.Font = new System.Drawing.Font("Century Gothic", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.label6.ForeColor = System.Drawing.Color.White;
               this.label6.Location = new System.Drawing.Point(169, 443);
               this.label6.Name = "label6";
               this.label6.Size = new System.Drawing.Size(67, 24);
               this.label6.TabIndex = 0;
               this.label6.Text = "ToDo,";
               // 
               // label5
               // 
               this.label5.AutoSize = true;
               this.label5.BackColor = System.Drawing.Color.Transparent;
               this.label5.Font = new System.Drawing.Font("Century Gothic", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
               this.label5.ForeColor = System.Drawing.Color.White;
               this.label5.Location = new System.Drawing.Point(56, 443);
               this.label5.Name = "label5";
               this.label5.Size = new System.Drawing.Size(112, 24);
               this.label5.TabIndex = 0;
               this.label5.Text = "Calendar,";
               // 
               // pictureBox2
               // 
               this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
               this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
               this.pictureBox2.Image = global::WindowsFormsCSharp.Properties.Resources.CalenDo;
               this.pictureBox2.Location = new System.Drawing.Point(12, 12);
               this.pictureBox2.Name = "pictureBox2";
               this.pictureBox2.Size = new System.Drawing.Size(273, 108);
               this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
               this.pictureBox2.TabIndex = 0;
               this.pictureBox2.TabStop = false;
               // 
               // frmLogin
               // 
               this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
               this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
               this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
               this.ClientSize = new System.Drawing.Size(748, 528);
               this.ControlBox = false;
               this.Controls.Add(this.panel2);
               this.Controls.Add(this.panel1);
               this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
               this.Margin = new System.Windows.Forms.Padding(2);
               this.MaximizeBox = false;
               this.MinimizeBox = false;
               this.Name = "frmLogin";
               this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
               this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
               this.Activated += new System.EventHandler(this.frmLogin_Activated);
               this.panel2.ResumeLayout(false);
               this.panel2.PerformLayout();
               this.panel4.ResumeLayout(false);
               this.panel4.PerformLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
               this.panel3.ResumeLayout(false);
               this.panel3.PerformLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
               this.panel1.ResumeLayout(false);
               this.panel1.PerformLayout();
               ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
               this.ResumeLayout(false);

           }

           #endregion

           private System.Windows.Forms.Button button1;
           private System.Windows.Forms.Button button2;
           private System.Windows.Forms.Label label1;
           private System.Windows.Forms.TextBox textBox1;
           private System.Windows.Forms.TextBox textBox2;
           private System.Windows.Forms.Button button4;
           private System.Windows.Forms.Panel panel1;
           private System.Windows.Forms.Panel panel2;
           private System.Windows.Forms.PictureBox pictureBox2;
           private System.Windows.Forms.Label label5;
           private System.Windows.Forms.Label label7;
           private System.Windows.Forms.Label label6;
           private System.Windows.Forms.LinkLabel linkLabel1;
           private System.Windows.Forms.Label label8;
           private System.Windows.Forms.Button button3;
           private System.Windows.Forms.Panel panel3;
           private System.Windows.Forms.Panel panel4;
           private System.Windows.Forms.PictureBox pictureBox3;
           private System.Windows.Forms.PictureBox pictureBox4;
           private System.Windows.Forms.Label label3;
           private System.Windows.Forms.Label label2;
       }

  • Re: TabIndex non funziona

    Al di là del TabIndex, la domanda era sulla gestione del GotFocus o LostFocus dei controlli di un Form…

  • Re: TabIndex non funziona

    07/12/2023 - SyD ha scritto:


    TabIndex non funziona

    07 dic 2023, 14:20

    Ciao,

    il TabIndex funziona.
    Come hai potuto notare segue la sequenza con la quale hai creato i controlli nella Form.

    Questo ordinamento sequenziale e automatico lo puoi gestire semplicemente modificando nei controlli la proprieta TabIndex tenendo in considerazioni almeno una regola: Non dare mai lo stesso indice a più controlli.

    Stessa cosa lo puoi fare nel codice del designer della Form. (personalmente te lo sconsiglio)


    Oppure puoi utilizzare l'opzione dal Menù Visualizza - TabOrder (Ordine di Tabulazione) :


    - una volta selezionato la voce “Ordine di Tabulazione”, nella form compariranno delle etichette su ogni controllo che indicano il valore di TabIndex attuale.
    - a questo punto con il mouse puoi premere sopra ad ogni controllo, in sequenza, per l'ordinamento che vuoi realizzare.
    - con il tasto Esc esci dalla funzione TabOrder


    Personalmente io quando arrivo alla fine della costruzione della Form, mi posiziono sul primo controllo che mi interessa avere come primo Focus e assegno da li in poi i nuovi TabIndex a tutti gli altri navigando nella Form così come vorrei che si comportasse.

    Creai anche un metodo da codice per riordinarli in automatico, ma alla fine non risultava molto utile o pratico in quanto non tutte le Form possono avere la stessa logica di spostamento tra un controllo e l'altro. Pertanto preferisco farlo manualmente e visivamente con la form e i controlli e la finestra delle proprietà di cui sopra. 

    Quindi secondo i casi o imposto il TabIndex Manualmente o uso il TabOrder

  • Re: TabIndex non funziona

    07/12/2023 - SyD ha scritto:


    Al di là del TabIndex, la domanda era sulla gestione del GotFocus o LostFocus dei controlli di un Form…

    Ciao, 

    quali problemi riscontri nel gestire, nel caso in cui ne hai veramente bisogno, il GotFocus e LostFocus ? 

  • Re: TabIndex non funziona

    08/12/2023 - By65Franco ha scritto:


    07/12/2023 - SyD ha scritto:


    Al di là del TabIndex, la domanda era sulla gestione del GotFocus o LostFocus dei controlli di un Form…

    Ciao, 

    quali problemi riscontri nel gestire, nel caso in cui ne hai veramente bisogno, il GotFocus e LostFocus ? 

    Ciao By65Franco e grazie della risposta,

    erano i panel che mi incasinavano il TabIndex, li avevo messi tutti a 0 con TabStop su False pensando che li saltasse direttamente, ma provando e riprovando l'ho notato ed ho appena risolto… ma non mi ricordavo più della funzione di Visual Studio ‘Ordine di tabulazione’.

    Non è facile trovare esempi su cose specifiche e i manuali danno solo le indicazioni di base per certe cose, in teoria associ un metodo al cambio focus di un controllo. Con l'Interfaccia IContainerControl sono riuscito a ottenere qualcosa del genere con i suoi metodi ActiveControl e ActivateControl.

  • Re: TabIndex non funziona

    08/12/2023 - SyD ha scritto:


    erano i panel che mi incasinavano il TabIndex, li avevo messi tutti a 0 con TabStop su False pensando che li saltasse direttamente, ma provando e riprovando l'ho notato ed ho appena risolto… ma non mi ricordavo più della funzione di Visual Studio ‘Ordine di tabulazione’.

    Ciao,

    come ti dicevo…. non dare mai lo stesso indice Tab a più controlli. 

    08/12/2023 - SyD ha scritto:


    Non è facile trovare esempi su cose specifiche e i manuali danno solo le indicazioni di base per certe cose, in teoria associ un metodo al cambio focus di un controllo. Con l'Interfaccia IContainerControl sono riuscito a ottenere qualcosa del genere con i suoi metodi ActiveControl e ActivateControl.

    E si…. non è facile. Ma con le basi si riesce ad approfondire, testare e verificare con il debug alle volte è risolutivo e alle volte no… ma con la console e finestra immediata si riesce con la giusta pazienza ad ottenere buoni risultati per capire come si comportano gli eventi , le classi , etc etc etc.

    Comunque in generale, più il codice è semplici e razionale e più risultati di stabilità si ottengono. Semplificare e usare gli eventi nel modo più opportuno è la chiave di tutto. 
    Aggiungerei che, indice di una buona progettazione è quando si usano Try Catch il meno possibile perchè spesso sono una toppa messa lì per problemi che si generano con una cattiva analisi e progettazione… e questo non va bene in generale. Dover gestire le "Eccezioni" spesso è sintomo di una cattiva programmazione (non a caso si chiamano Eccezioni e come tali non dovrebbero verificarsi).

Devi accedere o registrarti per scrivere nel forum
7 risposte