Hi @Anonymous ,
For your first question, what is the Items property of your dropdown? Are you populate this dropdown from another list or form a static table?
You can create a collection on the + button to get all the Project name that are not in your list. I will give you a simple example to understand this action.
1. For example, the items property of my dropdown is list10.Title(that means I populate this dropdown based on value in Title column from list10).

2. My form is connected to list9, so new items will be saved into list9.

3. On the + button, add a collection using below formula(NewForm(EditForm1);Navigate(EditScreen1, ScreenTransition.None) isthe default formula):
NewForm(EditForm1);Navigate(EditScreen1, ScreenTransition.None);ClearCollect(test1,Filter(list10.Title, Not(Title in list9.Title)))
4. Go to EditForm, change Items property of the dropdown to the collection test1:

Click + button on the display screen to check the result.
For your second question, you can use a variable to achieve your purpose.
1. On DetailedScreen, set OnSelect property of the pencil icon to below formula:
EditForm(EditForm1);Navigate(EditScreen1, ScreenTransition.None);Set(var1,1)

2. Go to EditScreen, set DisplayMode property of dropdown to below code:
If(var1=1,Disabled,Edit)

3. Set var1=0 when submit your changes or cancel your changes:


Check results this time.
Best regards,
Allen