Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задать ссылку на объект 
V
    Опции темы
Barabeo
Дата 13.12.2011, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Как задать ссылку на контрол?

На форме находится Panel1, а на ней PictureBox.
Все работало отлично.
Решил добавить TabControl, а на него положил два этих (Panel1, PictureBox) контрола.
После сего появилось исключение.
текст исключения:
System.NullReferenceException не обработано
  Message="В экземпляре объекта не задана ссылка на объект."
  Source="Paint1"
  StackTrace:
       в Paint1.New.button1_Click(Object sender, EventArgs e) в D:\My\PC\programming\С#\Coding\Курс\Source\Курсовой\Курсовой\Paint 1\Paint1\Paint1\Form2.cs:строка 27
       в Paint1.Paint..ctor() в D:\My\PC\programming\С#\Coding\Курс\Source\Курсовой\Курсовой\Paint 1\Paint1\Paint1\Form1.cs:строка 38
       в Paint1.Program.Main() в D:\My\PC\programming\С#\Coding\Курс\Source\Курсовой\Курсовой\Paint 1\Paint1\Paint1\Program.cs:строка 19
       в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException: 


Вот в этой строке:
Код

 PictureBox p = Owner.Controls["panel1"].Controls["pictureBox1"]
                as PictureBox;

 Код формы:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Paint1
{
    public partial class New : Form
    {
        public New()
        {
            InitializeComponent();
        }

        internal void button1_Click(object sender, EventArgs e)
        {
            int w = (int)numericUpDown1.Value,
                h = (int)numericUpDown2.Value;
            Image im = new Bitmap(w, h);
            Graphics g = Graphics.FromImage(im);
            g.Clear(Color.White);
            g.Dispose();
            PictureBox p = Owner.Controls["panel1"].Controls["pictureBox1"]
                as PictureBox;
            if (p.Image != null)
                p.Image.Dispose();
            p.Image = im;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

    }
}

PM MAIL   Вверх
Brilona
Дата 14.12.2011, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 8.7.2008

Репутация: нет
Всего: 3



Цитата

Решил добавить TabControl, а на него положил два этих (Panel1, PictureBox) контрола.


Значит, теперь PictureBox нужно искать на TabControl, а не на форме. Попробуйте
Код

PictureBox p = Owner.Controls["tabControl1"].Controls["panel1"].Controls["pictureBox1"] as PictureBox;


PM MAIL ICQ   Вверх
Barabeo
Дата 14.12.2011, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Такое тоже не проходит.Та же ошибка.

Добавлено через 1 минуту и 21 секунду
Решил сделать по-другому, без TabControl.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1041 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.