2016-04-26 16 views
-1

tabcontrolでタブを無効にする可能性があるかどうか質問したいと思います。ボタンを押したときにタブコントロールを無効にするVB.NET

これは無効にするとコードがどのように見えるかです:あなたは、私は、C#のコードを変換しようとしていたフォーム をロードしながら、

Public Sub TabControl1_Selecting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting 
    If e.TabPageIndex = 3 Then 
     e.Cancel = True 
    End If 
End Sub 
  • このコードは唯一しかし、それは私のように動作しない無効期待される。

このコードを参照してください:

Public Sub EnableTabs(ByVal Page As TabPage, ByVal bolFlag As Boolean) 
    EnableControls(Page.Controls, bolFlag) 
End Sub 
Private Sub EnableControls(ByVal Ctrls As Control.ControlCollection, ByVal bolFlag As Boolean) 
    For Each Ctrl As Control In Ctrls 
     Ctrl.Enabled = bolFlag 
     EnableControls(Ctrl.Controls, bolFlag) 
    Next 
End Sub 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    'I have problems with this line 
    EnableTabs(TabControl1.TabPages(TabControl1.SelectedIndex) = 0, False) 
End Sub 

は、ボタンをクリックしながら、私はおそらく、タブを無効にすることができることをとにかくありますか?

私に教えてください!

おかげで、

よろしく、 アルビン

+0

「期待どおりに動作しません」何を意味するの? – Tim

+0

TabControl1.TabPages(TabControl1.SelectedIndex)= 0は、TabPageではなくBooleanに評価されます。もちろん、それは動作しません。可能な意図があったかもしれないと推測するのは非常に困難です。 –

+0

こんにちはハンス、私はちょうどC#のコードをコピーしました。私はvb.netと同じコード構造を期待していますが、そうではありません。 –

答えて

-1

私はすでにそれに基づいて私自身の答えを持っています。そして今私はこのコードを使用しました。たとえば、0〜2のインデックスを持つ3つのタブがあります。

Public Sub Tab0Flag As Boolean 
Public Sub Tab1Flag As Boolean 
Public Sub Tab2Flag As Boolean 

Public Sub TabControl1_Selecting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting 
If e.TabPageIndex = 0 Then 
    e.Cancel = Tab0Flag 
End If 
If e.TabPageIndex = 1 Then 
    e.Cancel = Tab1Flag 
End If 
If e.TabPageIndex = 2 Then 
    e.Cancel = Tab2Flag 
End If 
End Sub 
Private Sub EnableTabs(ByVal Tab0 As Boolean, ByVal Tab1 As Boolean, ByVal Tab2 As Boolean) 
Tab0Flag = Tab0 
Tab1Flag = Tab1 
Tab2Flag = Tab2 
End Sub 

Private Sub frmG_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
'I'll Only Disable the 2nd tab 
EnableTabs(False, True, False) 
End Sub 
0

はこのお試しください:私はすでにそれに答え

Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click 
    Dim tabPage As TabPage 

    For Each tabPage In TabControl1.TabPages 
     If tabPage.Text ="TabPage1" 
      tabPage.Enabled =False 
     End If 
    Next 
End Sub 

または

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     TabControl1.TabPages(0).Enabled =false 
End Sub 
+1

ありがとう、私は同じ考えを共有したと思います。ありがとう、本当にそれほど感謝します。 –

-1

を。とにかく、私はあなたのためにそれを共有したいと思います。

EnableTabs(TabControl1.TabPages(TabControl1.SelectedIndex) = 0, False) 

へ:

は、私はちょうどからコードを変更するタブのヘッダーをクリック/選択しながら

EnableTabs(TabControl1.TabPages(1), False) 

このコードは無効でタブのものではないが含まれています。私は今のところこれを使っていると思います。あなたが十分に有用なコードの他のソースを持っている場合。下の解答のセクションに任せてください。私はそれらをすべて聞くのが大好きでした。

ありがとうございます。

よろしく、 アルビン

0

さらに別の答え。いくつかの時点で

タブを無効にしたい場合 - 適切なポイントxが無効にするタブページのゼロベースのインデックスである

TabControl1.TabPages(x).Enabled = False 

でこのコードを使用します。

ユーザーがTabPageをクリックすると、コントロール全体に対してSelectingイベントが発生します。 e eventargsパラメーターを使用すると、選択されているTabPageの索引を見ることができます。このイベントのコードは、無効になっているかどうかをチェックし、無効な場合はタブのクリックをキャンセルします。

Private Sub TabControl1_Selecting(sender As Object, e As TabControlCancelEventArgs) Handles TabControl1.Selecting 
    If e.TabPage.Enabled = False Then 
     e.Cancel = True 
    End If 
End Sub 
+0

こんにちは!私はタブを無効にする方法を今すぐ持っている –

関連する問題