首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在窗体之间传递selectionStart属性(monthCalendar) (winforms c#)

在窗体之间传递selectionStart属性(monthCalendar) (winforms c#)
EN

Stack Overflow用户
提问于 2018-05-24 10:47:15
回答 1查看 185关注 0票数 0

我在一个窗体(statsform)上有一个日历控件,我从另一个表单exportform调用该控件:

下面是statsform中的代码,我在其中实例化exportform:

代码语言:javascript
代码运行次数:0
运行
复制
private void export_Click(object sender, EventArgs e)
        {

            if (formIsHidden == 0)
            {
                ExportForm exportForm = new ExportForm();
                exportForm.Show();
                formIsHidden = 1;
            }

        }

每次单击时,我都会以statsform更新日历控件中的日期:

代码语言:javascript
代码运行次数:0
运行
复制
public void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {
            dateFromLabel.Text = dateFromCalendar.SelectionStart.ToString("dd/MM/yyyy");   
        }

        public void monthCalendar2_DateChanged(object sender, DateRangeEventArgs e)
        {
            dateToLabel.Text = dateToCalendar.SelectionStart.ToString("dd/MM/yyyy"); 
        }

下面是来自form2的代码(尝试获取selectionStart属性并使用它)

代码语言:javascript
代码运行次数:0
运行
复制
(On button click)

statsform statsform = new statsform();

string startDate = statsform.dateFromCalendar.SelectionStart.ToString("yyyy-MM-dd 00:00:00");
string endDate = statsform.dateToCalendar.SelectionStart.ToString("yyyy-MM-dd 23:59.00");

(Pass date to SQL Queries)

但是,所选日期未传递给exportform,只有在创建断点并检查字符串时才传递当前日期。

是因为我正在创建表单的一个新实例吗?如何将用户选定的日期从表单传递给第二个表单?

statsform (创建日历) -> exportform (按钮单击event -从statsform日历控件检索selectedDate )

我的解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
public ExportForm(statsform parent)
        {
            InitializeComponent();
            statsform = parent;

        }

允许我使用表单的现有实例。我需要构造函数中的(这个),所以非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 10:55:51

在实例化exportform的构造函数以传递对第一个表单的引用时,可以在它上设置一个参数,然后直接引用这些属性。

所以在您的exportform类中

代码语言:javascript
代码运行次数:0
运行
复制
private statsform _statsform = null;

public exportform(statsform caller) {
    _statsform = caller;
}

然后当你实例化它

代码语言:javascript
代码运行次数:0
运行
复制
ExportForm exportForm = new ExportForm(this);

从您的按钮单击代码,您将引用状态表中的标签。

代码语言:javascript
代码运行次数:0
运行
复制
var fromDate = _statsform.dateFromCalendar.... etc

关于构造函数的更多信息,这里是https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/constructors

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50507387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档