c # - разница между кнопкой и System.Windows.Forms.Button? - PullRequest
1 голос
/ 09 октября 2011

В моем классе form1 у меня есть несколько кнопок, добавленных с помощью дизайнера.т.е. button1, button2.etc

В своем классе контроллеров я создал массив кнопок, таких как:

Btns[k,m] = new Button();

, а затем:на самом деле не изменить видимость кнопки на моем классе формы.Кто-нибудь знает почему?

В основном создайте массив имен кнопок в контроллере, которые фактически ссылаются на кнопки формы в моем классе form1.

Ответы [ 3 ]

3 голосов
/ 09 октября 2011

Нет никакой разницы между Button и System.Windows.Forms.Button при условии, что вы using System.Windows.Forms, и нет никакой двусмысленности.

Не перезаписывайте Btns[k, m] новой кнопкой. То есть удалите эту строку:

Btns[k, m] = new Button();

Если Btns не установлен из конструктора и его элементы будут null, установите для них кнопки, созданные из конструктора:

Btns[1, 1] = button1;
0 голосов
/ 10 сентября 2016

Класс Button в .Net framework входит в пакет System.Windows.Forms.По умолчанию на это уже ссылаются в приложениях Windows Form.В C # вы увидите

using System.Windows.Forms;

в верхней части кода за любой формой.Если это VB.Net, вы можете не видеть

Imports System.Windows.Forms

, как в C #, но если вы перейдете к ссылкам в обозревателе решений, вы увидите, что ссылка уже есть.

Поскольку выуже есть ссылки, нет никакой разницы, просто набрав Button или System.Windows.Forms.Button.Если вы используете System.Windows.Forms, мы можем сказать, что это похоже на полный квалифицированный путь.

Например, подумайте об одной конкретной классной комнате (скажем, 11 класс А) в школе и возьмите одного ученика.кого зовут Дэвид, и представьте, что вы тоже в той же классной комнате.Поэтому, если вы хотите отослать его, вы просто назовете его по имени Дэвид. Теперь подумайте, что вы в другом классе и хотите отослать его.Так что в этом случае просто позвонить Дэвиду будет недостаточно, чтобы установить его личность.Вы должны сказать что-то вроде этого: «Дэвид из 11 класса класса А».Теперь снова подумайте, если вы оба в одном классе, и когда вы хотите отослать его, и это выглядит немного глупо, если вы называете его «Дэвид из 11 класса класса А» вместо того, чтобы просто использовать Дэвида.

Так что если выв том же классе (=> у вас уже есть использование System.Windows.Forms) и вы хотите сослаться на Дэвида (=> Button), просто говоря, что Button достаточно, иначе вы можете использовать System.Windows.Forms.Button.

Надеюсь, вы получите представление.

Спасибо

0 голосов
/ 09 октября 2011

Я считаю, что основным отличием будет то, что требуется для обработки формы, а другое можно использовать в качестве маски инициатора / гиперссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...