2013-11-29 6 views
0

На первом я отключить пункт меню ToolStrip так, что когда пользователь нажмите кнопку «Включить» кнопка, пункт меню ToolStrip может быть EnableM как:Взаимодействия между компонентами 2 формы

private System.Windows.Forms.ToolStripMenuItem QLKHTSM; 

QLKHTSM это отключить на формы.

Проблема заключается в Enable кнопка находится на другой форме, так что я пытался взаимодействовать между 2 формами этим кодом (в соответствии с той же самой форме этого ToolStripMenuItem)

public static void enabletoolstrip() 
    { 
     QLKHTSM.enable = true; 
    } 

но проблема со статическим, QLKHTSM недоступен, и без статики я не могу назвать его в другой форме. Пожалуйста, помогите. Благодарю.

+0

наклоняет вы передаете объект 'ToolStripMenuItem QLKHTSM' в ту форму, в которой вы хотите включить/отключить его? – bansi

ответ

0

В форме, где QLKTHSM is, Идут, чтобы быть Свойства QLKTHSM и изменить свойство Модификатора на Public. Затем перейдите ко второй форме и используйте.

public void enabletoolstrip() 
{ 
    FirstForm f1 = (FirstForm)Application.OpenForms["FirstForm"]; 
    f1.QLKHTSM.Enabled = true; 
} 

Если форма с QLKHTSM еще не показано, то вы можете создать глобальный объект.

FirstForm f1 = new FirstForm(); 

Затем в вашем включить инструмент полосу

public void enabletoolstrip() 
{ 
    f1.QLKHTSM.Enabled = true; 
} 

Тогда везде, где вы хотите, чтобы показать форму вы используете

f1.Show(); 
+0

Спасибо, он сначала не сообщает об ошибке. Но когда я попытался отладить его, он определил, что QLKHTSM является NULL перед вызовом метода. Я пытаюсь исправить это здесь, но до сих пор не знаю. – user3032547

+0

@ user3032547 Открыта ли форма присутствия 'QLKHTSM'? –

+1

Фактически, да и нет. Вторая форма, где присутствует эта кнопка «Включить», представляет собой экран входа в систему, он отображается перед основной формой, где присутствует этот QLKHSTM. Я использую ShowDialog(), поэтому он не будет отображаться до выбора метода регистрации. – user3032547

Смежные вопросы