Oth*_*har 6 c# checkbox visual-studio-2010 .net-3.5 winforms
我试图找到如何将bool分配给复选框.我想在我的bool数据发生变化时自动刷新checkbox.checked值.我知道对于ComboBox,有一个DataSource属性,它使用一个列表,但我无法找到与复选框等效的.
我尝试使用checkBox.DataBindings,但它似乎不起作用.另一方面,我真的不知道第三个属性是什么意思.
checkBox.DataBindings.Add("Checked", DisableBugWatcher, "check");
Run Code Online (Sandbox Code Playgroud)
我需要它,因为我有两个独立的窗口刷新相同的复选框值!
编辑:
我尝试使用Event更新我的主GUI,但它说:跨线程操作无效:控制'checkBox'从一个线程访问,而不是创建它的线程.
问题是这样一个事实,即bool值是从另一个线程刷新而不是它影响的线程.
我与朋友一起找到更简单的方法来解决我的问题。我使用表单中的 DialogResult。当我从表单返回时,它会提供按钮单击的状态,并提供文本框的值。相同的代码适用于我的复选框问题。
这是代码示例:
public partial class MainWindow : Form
{
private OtherWindow m_otherWindow;
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Lazy create other window if it doesn't exist.
m_otherWindow = m_otherWindow ?? new OtherWindow();
// Passe textbox value to other window.
m_otherWindow.PassedValue=textBox1.Text;
if (m_otherWindow.ShowDialog()==DialogResult.OK)
{
// Clicked ok : update textbox value with textbox value of other window.
textBox1.Text=m_otherWindow.PassedValue;
}
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
public partial class OtherWindow : Form
{
/// <summary>
/// Value to be passed to the window.
/// </summary>
public string PassedValue
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
public OtherWindow()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4707 次 |
| 最近记录: |