2011-03-04 30 views
2

我正在使用winform應用程序,我想禁用標籤的tabindex。當我點擊我的標籤鍵時,我不希望焦點在標籤上。怎麼做??如何禁用labelname.tabindex?

+0

設置製表指數按你需要給你解決 – Dotnet 2011-03-04 05:30:28

+0

實際上標籤在面板..下面板還有另一個複選框..所以我想要打標籤按鈕跳過標籤,並轉到複選框... – 2011-03-04 05:40:36

+0

雅這就是我說的檢查標籤的Tab-index或設置複選框選項卡 - 索引爲0或1 – Dotnet 2011-03-04 05:42:15

回答

2

標籤上的tabstop屬性已被默認爲false,您不應該執行任何操作。如果tabstop設置爲true,那麼你可能有代碼設置它的地方。

似乎接受tab不可直接在標籤類,設置它,你將需要轉換的對象作爲System.Windows.Forms.Control的

+0

但如何找到該代碼? – 2011-03-04 06:00:16

+0

文本搜索 - 「.TabStop = false」 – benPearce 2011-03-04 06:04:34

+0

它已被設置爲false ... – 2011-03-04 06:20:57

7

這是相當神奇。讓標籤停止在標籤上是非常困難的,它不需要關注。其構造函數將TabStop屬性設置爲false。更難的是看到標籤有重點,它沒有任何方式來表明它。這引出了問題,你怎麼知道標籤是焦點。

三重檢查此問題,您可能會錯誤地解釋發生了什麼。就像在其他控件上有錯誤的TabIndex值。視圖+製表順序是一個非常方便的設計器命令,使得製表順序易於查看和修改。

+0

對於視圖而言+1> taborder,-1對於我必須在2014年使用winforms: ) – 2014-01-15 16:21:17

3

我不確定默認設置爲false。當我創建一個標籤,我得到了

// 
      // lblEntitlement 
      // 
      this.lblEntitlement.AutoSize = true; 
      this.lblEntitlement.Location = new System.Drawing.Point(103, 68); 
      this.lblEntitlement.Name = "lblEntitlement"; 
      this.lblEntitlement.Size = new System.Drawing.Size(27, 18); 
      this.lblEntitlement.TabIndex = 8; 
      this.lblEntitlement.Text = "NA"; 

有不似乎是這裏的製表位

我會做任何默認設置formname.designer.cs下面是創建一個遞歸循環並遍歷表單上的控件併爲每個標籤設置tabstop爲false。也許製作一個表單並且讓所有其他表單繼承它。我相信有一個關於這個意見(也許有一些純粹主義者會說加載時的形式,但在權衡是絕對值得的,你對我的失去1/100秒)

例如

private void DisableTabstops(Control.ControlCollection controls) 
     { 
      foreach (Control control in controls) 
      { 

       if (control.GetType() == typeof(Label)) 
       { 
        control.TabStop = false; 
       } 


       if (control.Controls.Count > 0) 
       { 
        DisableTabstops(control.Controls); 
       } 

      } 
     } 
0

設置所需控件的tabindex - 或者將tabindex設置爲-1,以便您不希望它關注的控件。

通過HTML

做這下面的例子將標籤爲 「TextBox1的」 文本輸入。下一個標籤會打「textbox2」文本輸入。此跳過所示的標籤:

<label for="textbox1">First Label</label> 
<input type="text" id="textbox1" tabindex="1" /> 

<label for="textbox2">Second Label</label> 
<input type="text" id="textbox2" tabindex="2" /> 

或-1(默認爲非集的TabIndex)的tabindex:

<label for="textbox1" tabindex="-1">First Label</label> 
<input type="text" id="textbox1" tabindex="1" /> 

<label for="textbox2" tabindex="-1">Second Label</label> 
<input type="text" id="textbox2" tabindex="2" /> 

從代碼中設置的tabindex背後

在後端腳本,只要你有標籤:

runat="server" 

在您的控件,您可以通過編程設置tabIndex:

<label for="textbox1" id="Label1" runat="server">Hello!</label> 
<input type="text" id="textbox1" runat="server" /> 

VB做到這一點:

textbox1.TabIndex = "1" 
Label1.TabIndex = "-1"