小编PTR*_*R01的帖子

为Windows窗体C#设置日期时间选择器的最短日期

我目前正在使用C#中的To-Do列表Windows Forms应用程序,它具有日期时间选择器,通过一些研究我能够发现我能够在Designer选项卡中设置日期时间选择器的MinValue属性.表格.

计划是通过以下代码设置日期时间选择器的最小日期值:

    this.startDatePicker.MinDate = System.DateTime.Now;
    this.startDatePicker.Value = System.DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

这不是问题,这段代码很好,它的工作原理.它成功地将日期时间选择器的最小值设置为今天,从而基本上阻止用户在此日期之前选择日期.

但是,我的问题是,由于某种原因,Designer Tab决定重置它并自动删除此代码.

我只是想知道是否有办法阻止Designer Tab更改日期时间选择器的最小值?

c# datetimepicker windows-forms-designer winforms

2
推荐指数
1
解决办法
2398
查看次数

从多个数组中删除元素

我目前正在制作一个待办事项列表windows表单应用程序作为项目.我有无程序的程序,但目前无效的一件事是删除功能.

基本上我的程序目前的工作方式是我使用他们在列表框中选择的任何任务标题,与之关联的数据(即优先级,开始日期,结束日期)都是通过使用相同的索引位置找到的.通过在任务标题数组中使用线性搜索找到此索引位置,使用用户在列表框中选择的标题作为键.

我通过将数组元素的内容重置为添加数据之前该元素中存在的原始默认值来清除该元素的内容,例如我通过将内容设置为"null"来重置任务标题数组中元素的内容".

然后,我使用以下内容刷新列表框内容:

taskListBox.DataSource = null;
taskListBox.DataSource = DataArrays.titleArr;
Run Code Online (Sandbox Code Playgroud)

但是,此方法的完整代码如下所示.

public void deleteSelectedTask(ref ListBox taskListBox)
{
    MainForm main = new MainForm();
    DataInput input = new DataInput();

    string key = Convert.ToString(taskListBox.SelectedValue);

    int i = getTaskKey(key);

    DataArrays.titleArr[i] = null;
    DataArrays.descArr[i] = null;
    DataArrays.priorityArr[i] = 0;
    DataArrays.startDateArr[i] = Convert.ToDateTime("01/01/0001");
    DataArrays.endDateArr[i] = Convert.ToDateTime("01/01/0001");
    DataArrays.completeArr[i] = null;

    taskListBox.DataSource = null;
    taskListBox.DataSource = DataArrays.titleArr;
}
Run Code Online (Sandbox Code Playgroud)

目前这种方法有点工作并且技术上确实删除了元素,但是由于某种原因,这会影响数组的数据源并且不总是成功刷新.

例如,假设您有3个任务输入到阵列中.您删除元素位置3中的任务,此方法正常工作!该任务已成功从阵列中删除,并且在列表框刷新后不会显示.

但是,如果用户决定删除作为另一个任务的前任任务的任务,即任务1或2,则列表框决定不显示任何连续任务,即使它们尚未被选择删除.例如,如果从列表中删除任务1,则任务2和3也将消失.或者,如果从列表中删除任务2,任务3也将消失,但任务1将保留.

我不确定问题是什么,我觉得对这段代码有一些新的看法可能有助于这种情况.

编辑:

DataArrays实际上用于存储我的数组:

    public class DataArrays
    {
        public static string[] titleArr = new string[9];
        public static string[] …
Run Code Online (Sandbox Code Playgroud)

c# winforms

0
推荐指数
1
解决办法
49
查看次数