Как получить доступ к объектам формы из другого cs файла в C#

Это известная проблема совместимости TensorFlow с поддержкой AVX на старых процессорах, она может быть исправлена, если вы скомпилируете TensorFlow из источников: / 17411 # issuecomment-386888244

https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-420157421

7
задан Fionnuala 4 April 2009 в 15:45
поделиться

3 ответа

Нажмите свою кнопку в разработчике, перейдите к, ему - свойства и свойство "Modifiers" изменения от Частного до Общественности.

Затем можно получить доступ к нему от другого класса, чего-то вроде этого:

public static class Test
{
    public static void DisalbeMyButton()
    {
        var form = Form.ActiveForm as Form1;

        if (form != null)
        {
            form.MyButton.Enabled = false;
        }
    }
}

Примечание: это - просто пример и определенно не шаблон для хорошего дизайна :-)

15
ответ дан 6 December 2019 в 06:25
поделиться

Я волнуюсь каждый раз, когда я слышу, что кто-то говорит о "другом .cs файле" или "другом .vb файле". Это часто (хотя не всегда) указывает на отсутствие понимания программирования, по крайней мере, программирования OO. Что находится в файлах? Один класс? Два?

Вы не пытаетесь получить доступ к этим вещам из другого файла, Вы пытаетесь получить доступ к ним из метода класса, или возможно модуля в VB.

Ответ на Ваш вопрос будет зависеть от природы класса и метода, из которого Вы пытаетесь получить доступ к этим вещам и причине, почему Вы хотите получить доступ к ним.

После того как Вы редактируете свой вопрос включать эту информацию, ответы, которые Вы получаете, вероятно, покажут Вам, что Вы не должны получать доступ к этим частным частям формы в классах кроме самого класса формы.

6
ответ дан 6 December 2019 в 06:25
поделиться

Хотя я соглашаюсь с John Saunders, одна вещь, которую можно делать неправильно, предполагая, что у Вас есть все доступное через общедоступные модификаторы, состоит в том, что у Вас нет экземпляра той формы.

Например, это - то, как Вы сделали бы это:

Form1 myForm = new Form1;
string theButtonTextIAmLookingFor = myForm.MyButton.Text;

Я предполагаю, что можно пытаться получить доступ к нему как, он статичен, как это:

string theButtonTextIAmLookingFor = Form1.MyButton.Text;

Просто что-то Вы могли бы хотеть проверить.

1
ответ дан 6 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: