【问题标题】:RadioButton.Checked issueRadioButton.Checked 问题
【发布时间】:2013-03-02 03:15:04
【问题描述】:

所以我对我的一个类的这段代码有一些问题。我知道这看起来相当初级,但对于我的生活,我不确定为什么我不能让它发挥作用。

基本上我有 6 个单选按钮,根据选择的单选按钮,我想为一个 int 变量分配一个值。我想将该值返回给另一个 winForm,它会做其他事情。

但由于某种原因,它总是返回 0。

我们将不胜感激。

提前谢谢你..

    int x = 0;

    public int selectionDie1()
    {
        if (die1_1.Checked)
            x = 1;
        if (die1_2.Checked)
            x = 2;
        if (die1_3.Checked)
            x = 3;
        if (die1_4.Checked)
            x = 4;
        if (die1_5.Checked)
            x = 5;
        if (die1_6.Checked)
            x = 6;
        return x;
    }

我还想补充一点,即使我将其更改为没有返回值的 void 并放置一个在 buttonclick 上显示 x 值的标签,它仍然返回 0。

我什至尝试过只使用一个单选按钮,看看是否可行,根本没有。

当我设置 x = 1000;并返回它工作正常,所以它与单选按钮有关

谢谢

【问题讨论】:

  • 您能告诉我们您是如何设置单选按钮的吗?
  • 代码按发布的方式工作。问题在其他地方。您可能应该将int x 放在 selectionDiel 函数中。
  • 何时(何地)调用seelctionDie1()
  • 你有事件处理程序吗?
  • 那行不通。您创建了一个“新”表单,其中可能尚未选择单选按钮。您必须引用已显示的表单。

标签: c# .net winforms radio-button


【解决方案1】:

如果我理解正确,您正在尝试以其他形式使用变量x。你需要使用selectionDie1函数的直接结果。

public int selectionDie1()
{
    if (die1_1.Checked)
        return 1;
    else if (die1_2.Checked)
        return 2;
    ...

    else
        throw new exception("there was no item checked");
}

这样就没有变量需要跟踪,或者可以从外部位置访问。

另一个问题是您正在创建一个表单,然后立即检查所选项目(如果您的评论是正确的)。您需要首先创建并显示表单,让用户有时间选择一个选项,然后执行此函数调用(这可能发生在用户选择、表单关闭、按钮按下等)。

【讨论】:

    猜你喜欢
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多