我已经创建了一个VS应用程序,我已经在另一台计算机上安装了一个副本,我希望通过LAN链接它们,这样如果settings
被整合在一起,其他的setings也将被保存。
例如此设置
我在sttings中创建了一个新的name
并将其命名为“AdminIn”并将其类型设置为integer
,将其scope
设置为user
并将其值设置为0
Dim AI As New My .MySettings
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AI.AdminIn = AI.AdminIn + 1
Ai.SAve()
End Sub
现在如何在另一台计算机上的其他应用程序中更新AI。
如何通过LAN连接并完成此操作?
答案 0 :(得分:0)
我发现这个链接提供了一些示例代码来修改My.Settings
中可能有用的应用程序作用域变量。我用一个带有计时器和标签的简单表格测试了它,显示了AdminIn
设置的当前值,它似乎有效。计时器通过检查重新加载的My.Settings
值来更新表单的每个实例上的标签。该变量需要是应用程序作用域,以便可以在任何可运行可执行文件的计算机上访问所有用户。
http://www.codeproject.com/Articles/19211/Changing-application-scoped-settings-at-run-time
这是我整理的表单代码,以使当前的管理员计数保持最新状态。非常简单,但似乎整齐地完成了这项工作。
Public Class Form1
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
'Decrement the AdminIn count when the current instance of the form is closed.
Me.tmrAdminCheck.Stop()
ChangeMyAppScopedSetting((My.Settings.AdminIn - 1).ToString)
'Reload the .exe.config file to synchronize the current AdminIn count.
My.Settings.Reload()
My.Settings.Save()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Increment the current AdminIn count when a new instance of the form is loaded
ChangeMyAppScopedSetting((My.Settings.AdminIn + 1).ToString)
'Reload the .exe.config file to synchronize the current AdminIn count.
My.Settings.Reload()
My.Settings.Save()
Me.lblAdminsIn.Text = "Current Admins In: " & My.Settings.AdminIn.ToString
'Start the timer to periodically check the AdminIn count from My.Settings
Me.tmrAdminCheck.Enabled = True
Me.tmrAdminCheck.Interval = 100
Me.tmrAdminCheck.Start()
Me.Refresh()
Application.DoEvents()
End Sub
Private Sub tmrAdminCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAdminCheck.Tick
'Reload the .exe.config file to synchronize the current AdminIn count.
My.Settings.Reload()
Me.lblAdminsIn.Text = "Current Admins In: " & My.Settings.AdminIn.ToString
Me.Refresh()
Application.DoEvents()
End Sub
End Class
我用这种方法找到了一些东西,它们与其他人在评论中提到的内容有关:
My.Settings
。AdminIn
值。 CodeProject示例
没有任何异常处理,但你可以很容易地解决这个问题
通过进行递归调用进入异常处理的功能
到子。否则,这似乎是完成你所谈论的完全可行的方法。