我已经用DataGridView
创建了一个UserControl
。在我的代码中,我将这个UserControl
添加到Form
上的TabControl-TabPage
。这样做效果很好。
现在,我想双击UserControl
的DataGridView
,选择该行作为对象,并在另一个TabPage
(位于初始Form
上)上使用此数据。
如何访问Form
上的UserControl
活动?
我试过那样做(第一个答案)How to use UserControl,但我不能在我的Form
上使用它。所以这是行不通的。
又如何做一个DataGridViewCellEvent
来使用呢?
编辑:我现在尝试以下方式:使用者控件:
public partial class ucData : UserControl
{
public ucData(string Number)
{
InitializeComponent();
public string Data
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
public event EventHandler DataAvailable;
/// <summary>
/// Called to signal to subscribers that new data is available
/// </summary>
/// <param name="e"></param>
protected virtual void OnDataAvailable(EventArgs e)
{
EventHandler eh = DataAvailable;
if (eh != null)
{
eh(this, e);
}
}
....
...
private void dataGridView_CellDoubleClick(object sender, EventArgs e)
{
OnDataAvailable(null);
}
在我的主表单上:
...
void Test()
{
UserControls.ucData uc = new ucData(null);
uc.DataAvailable += new EventHandler(child_DataAvailable);
uc.Data = "Hello!";
}
void child_DataAvailable(object sender, EventArgs e)
{
UserControls.ucData child = sender as UserControls.ucData;
if (child != null)
{
MessageBox.Show(child.Data);
}
}
...
但是如果我双击用户控件,就不会出现MessageBox。为什么?出了什么问题?有人能帮忙吗?
2条答案
按热度按时间wecizke31#
试试看:
用户控件
表格
6ie5vjzr2#
我使用 UserControl 中的存储库来显示所有数据。
错误消息:系统.空引用异常:对象引用未设置为对象的示例。... AppConnection.. cctor()
这里是我的AppConnection: