Vb.net 使用my.settings system.drawing.size和textbox.text

Vb.net 使用my.settings system.drawing.size和textbox.text,vb.net,my.settings,Vb.net,My.settings,问题: 我想更改面板的大小并保存它,以便下次打开程序时,它将保持面板的大小。因此,我将my.settings与system.drawing.size 但是,我在转换时遇到问题,因此我可以首先输出我的my.settings My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text 错误1“System.Drawing.Size”类型的值无法转换为“String” 我知道如何使用my.settings,我只是很难将其转换为我的textbox.t

问题:

我想更改面板的大小并保存它,以便下次打开程序时,它将保持面板的大小。因此,我将
my.settings
system.drawing.size

但是,我在转换时遇到问题,因此我可以首先输出我的
my.settings

My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text
错误1“System.Drawing.Size”类型的值无法转换为“String”

我知道如何使用my.settings,我只是很难将其转换为我的textbox.text

编辑:

如何填充文本框是在
OnLoad事件中

Tb_Pnl_Service_Size.Text = My.Settings.pnl_service_size.ToString 'I populate the textbox
Pnl_Service.Size = New Size(My.Settings.pnl_service_size) 'The panel that I want to change the size
'I populate the textbox
Tb_Pnl_Service_Size.Text = My.Settings.pnl_service_size 

'The panel that I want to change the size
Dim pnl_size As Array = Split(My.Settings.pnl_service_size, ",", 2)
Pnl_Service.Size = New Size(pnl_size(0), pnl_size(1)) 
如何保存文本框是通过按
OnClicked按钮来实现的

My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text.ToString
My.Settings.Save()
My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text
My.Settings.Save()

关键信息是
My.Settings
中的值的变量类型

My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text.ToString
这使它看起来像是字符串。问题是,这将保存以下内容:
{Width=237,Height=133}
,这将很容易无法转换回
大小
变量

如果
设置
中使用的类型为
System.Drawing.Size
,则无需转换为字符串即可保存:

My.Settings.pnl_service_size = Pnl_Service.Size
下次重置大小:

Pnl_Service.Size = My.Settings.pnl_service_size
您可以使用
.ToString()
显示值,但由于结果是
字符串
,因此不能将其用作
大小

TextBox1.Text = My.Settings.pnl_service_size.ToString()

似乎无法使用文本框来指示特定对象的大小

我将
my.settings
的类型从
system.drawing.size
更改为
string
这就是我使用它的方式

OnLoad事件期间填充文本框

Tb_Pnl_Service_Size.Text = My.Settings.pnl_service_size.ToString 'I populate the textbox
Pnl_Service.Size = New Size(My.Settings.pnl_service_size) 'The panel that I want to change the size
'I populate the textbox
Tb_Pnl_Service_Size.Text = My.Settings.pnl_service_size 

'The panel that I want to change the size
Dim pnl_size As Array = Split(My.Settings.pnl_service_size, ",", 2)
Pnl_Service.Size = New Size(pnl_size(0), pnl_size(1)) 
OnClicked按钮将
文本框保存到
my.settings

My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text.ToString
My.Settings.Save()
My.Settings.pnl_service_size = Tb_Pnl_Service_Size.Text
My.Settings.Save()

它想要的是一根绳子,而不是一个尺码。所以给它想要的。。。您的代码还显示将字符串分配给大小,您在哪里将大小分配给字符串?@jeremythonpson啊,是的。我正在使用以下代码分配表单加载时的大小
Pnl\u Service.size=New size(My.Settings.Pnl\u Service\u size)
,是的,我也有
Tb\u Pnl\u Service\u size.Text=My.Settings.Pnl\u Service\u size
只需放入一个ToString()例如,….Text=My.Settings.Pnl\u Service\u size.ToString(),我还尝试将其转换为如下字符串
CStr(My.Settings.pnl_service_size)=Tb_pnl_service_size.Text
。我不明白。哦,是的。非常感谢。它工作正常,但我在Cstr(My.Settings.pnl_service_size)上遇到问题=Tb\u Pnl\u Service\u Size.Text
我也尝试了
My.Settings.Pnl\u Service\u Size.tostring=Tb\u Pnl\u Service\u Size.Text
谢谢,但是如何在
My.Settings.Pnl\u Service\u Size
上设置新的大小?这是我的问题
My.Settings.Pnl\u Service\u Size=Tb\u Pnl\u Service\u Size.Text
。是的,我声明设置为
system.drawing.size
Tb\u Pnl\u Service\u size.Text
是一个字符串,而不是大小。问题的第一句话是关于保存和恢复面板大小。因此,请按我显示的那样从面板中保存。通过文本框将大小传递到字符串,这样您就可以得到错误信息。您可以在Tb中显示它,但不能将其用作大小从那里。也许你可以解释为什么面板。大小需要来自文本框谢谢!因为你,我意识到我做得很艰难,请看我的答案。我现在使用
字符串作为我的
my.settings
的类型,而不是
system.drawing.Size