2017-04-08 10 views
0

同じソリューションでProject2を使用してProject1のUIを更新することはできますか?私はProject2を使ってProject1のクラスにアクセスしましたが、コントロールにはアクセスしませんでした。これまでのところ私はFFを試してみました:他のプロジェクトのUIを1つのソリューションで更新する

のProject2 Loaded()
Dim newMenu As MenuItem 
    newMenu = New MenuItem() 
    newMenu.Header = "This is new" 
    newMenu.Tag = "1" 
    AddHandler newMenu.Click, New EventHandler(AddressOf menuClick) 
    myMenu.Items.Add(newMenu) 
menuClick()

Private Sub menuClick(sender As Object, e As RoutedEventArgs) 
    If sender.Tag = "1" Then 
     Dim progTag As Integer = Integer.Parse(sender.Tag) 
     Dim restriction = (From x In localdb.Restrictions 
          Where x.Username = "oliverc" Where x.Program_ID = progTag 
          Select x.Module_ID) 

     If restriction.Count > 0 Then 
      For Each ListItem In restriction.ToList 
       restrict.Add(New Project2.Restrictions() With {.RestrictionTag = ListItem.ToString}) 
      Next 
     End If 

     For Each ListItem In restrict 
      MessageBox.Show(ListItem.RestrictionTag(0)) 
     Next 



     Dim frm As Project2.MainWindow = New Project2.MainWindow() 
     frm.ShowDialog() 

    End If 
End Sub 

For Each ListItem In listOfRestriction 
     Select Case ListItem.ToString 
      Case "1" 
       btn_addRegion.IsEnabled = False 
     End Select 
     MessageBox.Show(ListItem.ToString) 
    Next 

答えて

0

短い答え:Project1のLoaded()イベントで

長い答え:

各プロジェクトは、スタンドアロンの.exeまたは.dllにコンパイルされます。現在のやり方が可能であっても、Project2 -exeはProject1のインスタンス(ある場合はそのインスタンス)を変更する必要があります。

他のexeと全く通信するには、Interprocess communicationを実装する必要があります。それでProject2によってそう言われるときProject1それ自身を変更するを持っていなければなりません。

使用できるIPCのいくつかの種類:

関連する問題