Обновление datagridview в разных формах

Я не могу вставить строку перед datagridview Как передать переменную Form1..Form2..Form3 в datagridview?

У меня есть datagridview с одним и тем же именем в нескольких формах. Мне нужно получить от них значения, изменив имя «FORMNAMEXXXX». DataGridView1.CurrentRow.Cells(0).Value

Dim ownerType = Owner.GetType()
Dim formowner = ownerType.Name.ToString
Dim id As Integer = formowner.DataGridView1.CurrentRow.Cells(0).Value.ToString

но у меня есть эта ошибка: «DataGridView1» не является членом «String»

Нет, вам определенно не нужно этого делать. Что должно произойти, так это то, что эти другие формы передают соответствующие данные при создании этой формы. Либо объявите конструктор с параметром для этого идентификатора, либо объявите свойство. Эти другие формы могут затем передать аргумент конструктору или установить свойство. Этой форме не нужно ничего знать о созданной форме. Все, что ему нужно, это значение идентификатора, а не то, откуда оно взялось.

jmcilhinney 05.04.2023 10:07

Можете ли вы привести пример, как передать значение ячейки datagridview из одной формы в другую через showdialog?

GuidoM. 05.04.2023 17:41

@ГвидоМ. Зачем вам нужно идти через диалог? Помогают ли Примеры свойств? (Вам нужна недвижимость Public ReadOnly.)

Andrew Morton 05.04.2023 18:05

Может быть интересно следующее: stackoverflow.com/questions/69711574/…

Tu deschizi eu inchid 05.04.2023 18:11

У меня есть 3 формы, в форме1 и форме2 есть datagridview. с form3 я должен получить значение ячейки формы, которая вызвала form3. это мое требование. Я не хочу создавать одно общедоступное свойство. Мне удалось получить имя формы, которая вызвала form3, но если я использую XXXXNAME.DataGridView1.CurrentRow.Cells(0).Value.ToString, у меня есть эта ошибка: «DataGridView1» не является членом «String»

GuidoM. 05.04.2023 18:31

@ГвидоМ. Используете ли вы «экземпляр по умолчанию» Form3 или создаете новый экземпляр, когда хотите использовать Form3? И что вы имеете в виду под "позвонили"?

Andrew Morton 05.04.2023 18:45

Непонятно, что вы делаете и какова общая цель. Ваше приложение может выиграть от повторной оценки дизайна, но это трудно определить на основе предоставленной информации. Пожалуйста, добавьте изображения ваших форм в свой ОП (исходный пост). Также добавьте подробности о том, какова общая цель проекта.

Tu deschizi eu inchid 05.04.2023 18:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
8
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У меня есть 3 формы, в форме1 и форме2 есть datagridview. с form3 мне нужно получить значение ячейки формы, которая вызвала форма3. это мое требование. Я не хочу создавать один Public свойство. Мне удалось получить имя формы, которая называется form3 но если я использую XXXXNAME.DataGridView1.CurrentRow.Cells(0).Value.ToString У меня есть эта ошибка "DataGridView1" не является членом "String"

Итак, в Form1 и Form2 вам нужно передать «владельца» при отображении Form3:

' ... in Form1 / Form2 ...
Form3 f3 = new Form3()
f3.ShowDialog(Me) ' <-- pass in Form1/Form2 via "Me"
' ... or possibly ...
f3.Show(Me)

Теперь в Form3 вы можете использовать свойство .Owner, чтобы получить ссылку на Form1 или Form2. После этого вы можете ИСКАТЬ этот DataGridView «по имени»:

' ... in Form3 ...
Dim frm As Form = Me.Owner
Dim ctl As Control = frm.Controls.Find("DataGridView1", True).FirstOrDefault()
If Not IsNothing(ctl) AndAlso TypeOf ctl Is DataGridView Then
    Dim dgv As DataGridView = DirectCast(ctl, DataGridView)
    ' ... do something with "dgv" ...
    Debug.Print(dgv.CurrentRow.Cells(0).Value.ToString)
End If

Другие вопросы по теме