1

有人碰巧知道是否可以在 MS Small Basic 中将 TextBox 设置为只读?似乎没有任何方法可以设置任何属性。谢谢。

4

3 回答 3

0

是的,有一种方法,但它有点作弊。

Textbox = Controls.AddTextBox(20,20)

While 1 = 1
Program.Delay(5)
Controls.SetTextBoxText(Textbox,"Text Here")
EndWhile

如您所见,它不是最干净的方式。但是 SB 没有添加只读命令,这很好用。

于 2014-07-16T14:18:23.593 回答
0

你可以做

controls.settextboxtext(control,text)
于 2015-05-25T22:15:41.057 回答
0

这是另一种解决方案,应该可以满足您 90% 的需求。有两个文本框,一个锁定一个,文本颜色为灰色,一个可编辑,文本颜色为黑色。按下锁定按钮时,可编辑框被隐藏,锁定的框显示并更新为当前文本。为了避免干扰程序的其余部分,计时器事件(在自己的线程中运行)用于将文本锁定到位。这一切都由可编辑变量控制。

此示例的 SmallBasic 导入代码为:PNJ462

享受!:-)

GraphicsWindow.BrushColor = "darkgray"
Textboxlocked = Controls.AddTextBox(20,20)
Controls.HideControl(Textboxlocked)
GraphicsWindow.BrushColor = "black"
Textbox = Controls.AddTextBox(20,20)
Controls.SetTextBoxText(Textbox,"Hello World")
lock = Controls.AddButton("Lock",20,50)
unlock = Controls.AddButton("Unlock", 130,50)
Controls.ButtonClicked = onButtonClick

Timer.Interval = 10
Timer.Tick = whenTickTocks

Sub whenTickTocks
  If editable = "False" then
    Controls.SetTextBoxText(Textboxlocked,holdtext)
  EndIf
endsub

Sub onButtonClick
  If Controls.LastClickedButton = lock Then
    editable = "False"
    holdtext = Controls.GetTextBoxText(Textbox)
    Controls.SetTextBoxText(Textboxlocked,holdtext)
    Controls.ShowControl(Textboxlocked)
    Controls.HideControl(Textbox)
  Else
    editable = "True"
    Controls.ShowControl(Textbox)
    Controls.HideControl(Textboxlocked)
  EndIf
EndSub
于 2015-06-04T20:55:33.550 回答